HTTP Header Parser: Header als Tabelle und JSON
Der HTTP Header Parser macht aus rohen HTTP-Headern oder dem Header-Block einer E-Mail eine sortierte, durchsuchbare Tabelle mit einer Zeile pro Header. Wiederholte Header wie Set-Cookie landen in einer einzigen Zeile, jeder Wert für sich, und alles lässt sich als JSON kopieren. Der Parser ordnet nur den Text, den du einfügst: Es wird nichts nachgeschlagen, geprüft oder dekodiert.
HTTP-Header auslesen: so geht's
So wird aus rohem Text eine Tabelle:
- Kopiere die Header: aus dem Netzwerk-Tab der Entwicklertools deines Browsers, aus der Ausgabe von
curl -ioder vom Anfang des Quelltexts einer E-Mail. Füge nur die Header-Zeilen ein, nicht den Text, der danach kommt. - Füge sie in das Feld Rohe Header ein. Es nimmt bis zu 5 MB (5.000.000 Zeichen) auf.
- Wähle unter Analysemodus entweder E-Mail / RFC 5322 (Standard) oder Striktes HTTP. Der Unterschied steht weiter unten.
- Drücke auf Header analysieren. Es öffnet sich Analysierte Header mit einer Tabelle aus Name und Wert, nach Name von A bis Z sortiert, ohne Rücksicht auf Groß- und Kleinschreibung. Lange Werte wie eine DKIM-Signatur scrollen in der Tabelle zur Seite.
- Gib in Nach Name oder Wert filtern einen Suchbegriff ein, um die Zeilen einzugrenzen. Die Anzahl darunter wechselt zum Beispiel von „12 Header“ zu „3 von 12 Headern“; der Filter beachtet die Schreibweise nicht.
- Mit Als JSON kopieren landen alle Header in der Zwischenablage. Header bearbeiten führt zurück zum eingefügten Text, der noch da ist. So kannst du eine Zeile korrigieren und erneut analysieren.
Email Header auslesen: Beispiel mit Set-Cookie und Received
Der Beispielblock besteht aus einer Statuszeile (HTTP/1.1 200 OK), drei gewöhnlichen Headern, zwei Set-Cookie-Zeilen (eine davon kleingeschrieben) und einem Received-Header, der auf eine zweite Zeile umbrochen ist.
Im Standardmodus „E-Mail / RFC 5322“ ergibt das vier Zeilen. Die beiden Cookies teilen sich eine Zeile, der umbrochene Received-Wert wird zu einer Zeile verbunden, und die Statuszeile steht als übersprungen in der Liste, weil vor einem Doppelpunkt kein Name steht. „Als JSON kopieren“ liefert:
{"Cache-Control": "no-store", "Content-Type": "text/html; charset=utf-8", "Received": "from mail.example.com by mx.example.net; Tue, 1 Oct 2024 09:00:00 +0000", "set-cookie": ["id=a3fWa; Path=/", "theme=dark"]}
Die zusammengeführte Zeile behält die Schreibweise, die zuerst vorkam (set-cookie), und wird zum Array, weil der Header zweimal auftrat. Ein Header, der nur einmal vorkommt, ist ein einfacher String.
Striktes HTTP oder E-Mail / RFC 5322: welcher Modus?
Die Modi unterscheiden sich nur darin, was mit einer Zeile passiert, die mit einem Leerzeichen oder Tab beginnt.
- E-Mail / RFC 5322: Die Zeile wird mit einem einzelnen Leerzeichen an die Zeile darüber gehängt. Das passt zu E-Mail-Headern, in denen lange Werte wie Received und DKIM-Signature über mehrere Zeilen umbrochen sind.
- Striktes HTTP: Die Zeile wird abgelehnt und als übersprungen aufgeführt, nicht angehängt. Das passt zu HTTP-Anfragen und -Antworten, wo eine eingerückte Zeile keine Fortsetzung ist und du sie markiert sehen willst.
Wenn du unsicher bist, lass den Standard stehen. Er ist der nachsichtigere der beiden.
Was der Parser überspringt, zusammenführt und stehen lässt
- Aufgeteilt wird am ersten Doppelpunkt. Davor steht der Name, danach der Wert. Ein Wert mit Doppelpunkten, etwa ein Datum oder eine URL, bleibt deshalb ganz.
- Übersprungene Zeilen: Eine Zeile ohne Namen vor einem Doppelpunkt ist kein Header. Das betrifft eine HTTP-Statuszeile (
HTTP/1.1 200 OK), eine Anfragezeile (GET /index.html HTTP/1.1) und losen Text. Ein Hinweis über der Tabelle zählt die übersprungenen Zeilen und zeigt die ersten fünf. - Pseudo-Header: HTTP/2-Namen, die mit einem Doppelpunkt beginnen, etwa
:authorityund:method, werden akzeptiert und stehen ganz oben. - Wiederholte Namen werden ohne Rücksicht auf Groß- und Kleinschreibung verglichen. Jeder Wert behält in der Tabelle seine eigene Zeile, in der Reihenfolge des Auftretens.
- Leere Werte: Ein Header ohne etwas hinter dem Doppelpunkt erscheint als „(leer)“.
- Leerzeilen werden ignoriert, beenden die Header aber nicht. Jede spätere Zeile mit Name und Doppelpunkt, auch aus dem Text einer E-Mail, wird zur Zeile. Kopiere deshalb nur den Header-Block.
Mail Header lesen: was dieser Parser nicht macht
Er strukturiert Text, mehr nicht. Er verfolgt nicht den Weg einer Nachricht, prüft weder SPF noch DKIM oder DMARC, beurteilt nicht, ob eine E-Mail Spam oder echt ist, und dekodiert keine Werte: kodierte Wörter wie =?UTF-8?B?…?= und Base64-Strings bleiben, wie du sie eingefügt hast. Willst du Absender, Authentifizierungsergebnisse und den Weg über die Server aus einer E-Mail herausgelesen haben, nimm stattdessen „E-Mail-Header analysieren“.
Bei einem Header Parser online zählt der Datenschutz besonders, denn Header-Blöcke enthalten oft Sitzungs-Cookies, API-Schlüssel und E-Mail-Adressen. Hier läuft die Analyse in deinem Browser, und die eingefügten Header werden weder hochgeladen noch gespeichert.
Häufige Fragen
Wie kopiere ich Request-Header in Chrome?
Öffne die DevTools, wechsle in den Netzwerk-Tab und lade die Seite neu. Klicke die Anfrage mit der rechten Maustaste an und wähle im Kontextmenü das Kopieren der Request-Header (oder der Response-Header). Füge das Ergebnis in „Rohe Header“ ein und drücke auf „Header analysieren“. Firefox hat dasselbe Kopieren-Menü an einer Anfrage im Netzwerk-Tab. Bei curl -i fügst du nur die Header-Zeilen ein, nicht den Text der Antwort danach.
Sind HTTP-Header case sensitive?
Die Namen nicht: Content-Type, content-type und CONTENT-TYPE sind derselbe Header, deshalb führt der Parser sie in einer Zeile unter der zuerst aufgetretenen Schreibweise zusammen. Die Werte bleiben, wie sie geschrieben sind, nur Leerzeichen am Anfang und Ende werden entfernt, weil manche Werte wie Cookie-Werte und Tokens zwischen Groß- und Kleinschreibung unterscheiden.
Kann eine Antwort Set-Cookie mehrfach enthalten?
Ja. Eine Antwort schickt pro Cookie eine eigene Set-Cookie-Zeile, und Set-Cookie ist das Standardbeispiel für einen Header, den man nicht gefahrlos mit Kommas verbinden kann. Der Parser listet jeden Set-Cookie-Wert in einer eigenen Zeile innerhalb einer einzigen Tabellenzeile, und „Als JSON kopieren“ macht daraus ein Array. Received-Header in E-Mails wiederholen sich genauso, einmal pro Server.
Was sind HTTP/2-Pseudo-Header wie :authority?
Pseudo-Header sind die Felder einer HTTP/2-Anfrage, die als Header mit einem Doppelpunkt am Anfang des Namens geschrieben werden: :method, :scheme, :authority und :path, in Antworten zusätzlich :status. :authority enthält den Host, so wie der Host-Header in HTTP/1.1. Der Parser behandelt den führenden Doppelpunkt als Teil des Namens, deshalb erscheinen sie als normale Zeilen und stehen vor den übrigen Headern.
Wie bekomme ich HTTP-Header als JSON?
Füge die Header ein, drücke auf „Header analysieren“ und dann auf „Als JSON kopieren“. Du erhältst ein JSON-Objekt mit den Header-Namen als Schlüsseln. Ein Header, der einmal vorkam, ist ein String; ein wiederholter wie Set-Cookie ist ein Array aus Strings in der Reihenfolge des Auftretens. Das JSON enthält immer alle analysierten Header, auch wenn der Filter einige Zeilen ausblendet.
Welchen Modus nehme ich für RFC 5322 Header?
Der Modus „E-Mail / RFC 5322“ hängt eine Zeile, die mit Leerzeichen oder Tab beginnt, an die Zeile darüber, wie es bei E-Mail-Headern üblich ist. Er ist die Voreinstellung. Für HTTP-Antworten, in denen du eingerückte Zeilen markiert sehen willst, wähle „Striktes HTTP“.
Ist es sicher, Cookies und Tokens in einen Online-Header-Parser einzufügen?
Die Analyse läuft in deinem Browser, und nichts, was du einfügst, wird hochgeladen oder gespeichert. Die Cookies und Tokens eines Header-Blocks gehen von dieser Seite aus also nirgendwohin. Behandle ein aktives Sitzungs-Cookie oder einen Authorization-Header trotzdem wie ein Passwort: Ersetze den Wert, bevor du die Header oder das JSON an jemanden weitergibst.
Empfohlen
-
Amazon Basics verstellbarer LaptopständerHebt dein Laptop auf Augenhöhe, damit ein langer Header-Dump nicht auf den Nacken geht.
-
Quntis Monitor-LichtleisteLeuchtet den Schreibtisch aus, wenn du nachts einer fehlerhaften Antwort nachjagst, ohne Spiegelung auf dem Bildschirm.
-
ARZOPA 16" tragbarer Monitor mit 144 HzHält DevTools oder das Terminal auf einem zweiten Bildschirm neben deinen Headern.
Hilft, die Tools kostenlos zu halten. ✨
Symbolbilder. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen.