HTTP-Anfrage zerlegen und analysieren

HTTP-Anfrage zerlegen: Rohe HTTP-Requests und -Antworten in Startzeile, Header, Query, Cookies und Body aufteilen, mit Erklärungen und Warnungen zu Fehlern.

–

 

    Startzeile
    TeilWert
    Header
    HeaderWertBedeutung
    Parameter, Cookies und Formularfelder
    NameWertQuelle
    Body

    Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

    Raw HTTP lesen und prüfen

    Mit diesem Werkzeug können Sie eine HTTP-Anfrage zerlegen oder eine HTTP-Antwort zerlegen, so wie sie über die Leitung geht: Startzeile, Header, Leerzeile, Body. Fügen Sie Raw HTTP aus curl -v, aus einem Proxy wie Burp oder mitmproxy, aus Wireshark oder aus den Entwicklertools des Browsers ein. Bei einer Anfrage zeigt es die Request-Line mit Methode, Ziel und Version, bei einer Antwort Statuscode und Begründung. Header parsen heißt hier: Jeder Header wird mit Namen, Wert und einer kurzen Erklärung aufgelistet, doppelte Header bleiben sichtbar.

    Danach geht es ins Detail: Aus Host und Ziel entsteht die vollständige URL, Query-Parameter, Cookies und Set-Cookie-Einträge werden einzeln aufgeführt, Formularfelder aus application/x-www-form-urlencoded dekodiert und JSON-Bodys formatiert. Chunked-Übertragung wird aufgelöst. Bei Basic Auth zeigt das Werkzeug nur den Benutzernamen und blendet das Passwort aus. Wenn Sie einen HTTP-Request analysieren, helfen die Hinweise: fehlender Host-Header, Leerzeichen vor dem Doppelpunkt, veraltete Fortsetzungszeilen, abweichende Content-Length oder die gefährliche Kombination aus Content-Length und Transfer-Encoding.

    Grenzen: Komprimierte Bodys (gzip, br) lassen sich als eingefügter Text nicht entpacken, und Byte-Längen können durch Zeilenenden abweichen; das Werkzeug prüft deshalb LF und CRLF. HTTP/2 und HTTP/3 sind binäre Protokolle; die Pseudo-Header wie :method und :path aus den Entwicklertools werden trotzdem erkannt. Bedeutungen einzelner Header schlagen Sie in der HTTP-Header-Referenz nach, Statuscodes unter HTTP-Statuscodes.

    Anleitung: HTTP-Anfrage zerlegen in 4 Schritten

    1. Die rohe HTTP-Anfrage oder -Antwort einfügen oder ein Beispiel wie GET-Anfrage oder POST mit JSON laden.
    2. In der Startzeile Methode, Ziel und Version oder Statuscode ablesen.
    3. Die Header-Tabelle mit Wert und Bedeutung sowie Parameter, Cookies und Formularfelder durchgehen.
    4. Warnungen zu Content-Length, Host oder Transfer-Encoding beachten und den Body kopieren.

    Typische Anwendungsfälle

    • API-Fehler untersuchen: Eine Anfrage aus curl -v zerlegen, um fehlende oder falsche Header zu finden.
    • Sicherheitstests: Raw HTTP aus Burp oder mitmproxy lesen und auf Request-Smuggling-Muster prüfen.
    • Cookies auswerten: Set-Cookie-Einträge einer Antwort einzeln mit ihren Attributen sehen.
    • Formulardaten lesen: Kodierte Felder aus einem POST-Body lesbar machen.
    Fragen

    Häufige Fragen

    Was ist die Request-Line?

    Die erste Zeile einer HTTP/1.x-Anfrage: Methode, Ziel und Version, getrennt durch je ein Leerzeichen, zum Beispiel GET /index.html HTTP/1.1.

    Warum ist Content-Length zusammen mit Transfer-Encoding gefährlich?

    Wenn Proxy und Server die Länge unterschiedlich auswerten, lassen sich Anfragen einschleusen (Request Smuggling). RFC 9112 schreibt vor, dass Transfer-Encoding Vorrang hat; viele Server lehnen die Kombination ab.

    Wo bekomme ich die rohe Anfrage her?

    Mit curl -v sehen Sie Anfrage und Antwort-Header. In den Entwicklertools des Browsers zeigt die Ansicht der Rohdaten (Raw) die Header. Proxys wie mitmproxy oder Burp zeigen die vollständige Nachricht.

    Werden meine Cookies oder Passwörter übertragen?

    Nein. Die Zerlegung läuft vollständig im Browser. Passwörter aus Basic Auth werden zusätzlich ausgeblendet; nur ihre Länge wird angezeigt.

    Wie ist eine HTTP-Antwort aufgebaut?

    Zuerst die Statuszeile mit Version, Statuscode und Begründung, etwa HTTP/1.1 200 OK. Danach folgen die Header, eine Leerzeile und schließlich der Body mit dem eigentlichen Inhalt.

    Was bedeutet Transfer-Encoding: chunked?

    Der Body wird in Stücken übertragen, jedes mit seiner Länge in Hexadezimal davor. Ein Stück mit der Länge 0 beendet die Übertragung; das Werkzeug setzt die Stücke wieder zusammen.

    Weitere Werkzeuge

    Das könnte auch helfen

    Alle 358 Werkzeuge