Parser header HTTP : tableau trié et JSON
Ce parser header HTTP transforme des en-têtes bruts, ou le bloc d'en-têtes d'un e-mail, en tableau trié et filtrable, avec une ligne par en-tête. Les en-têtes répétés, comme Set-Cookie, sont regroupés sur une seule ligne, chaque valeur étant listée à part, et l'ensemble se copie en JSON. L'outil ne fait que remettre en forme le texte que vous collez : rien n'est recherché, vérifié ni décodé.
Comment parser un header HTTP, étape par étape
- Copiez les en-têtes : depuis l'onglet Réseau des outils de développement de votre navigateur, depuis la sortie de
curl -iou depuis le début du code source d'un e-mail. Collez uniquement les lignes d'en-tête, pas le corps qui suit. - Collez-les dans En-têtes bruts. La zone accepte jusqu'à 5 Mo (5 000 000 de caractères).
- Sous Mode d'analyse, choisissez E-mail / RFC 5322 (par défaut) ou HTTP strict. La différence est expliquée plus bas.
- Cliquez sur Analyser les en-têtes. L'écran En-têtes analysés s'ouvre avec un tableau Nom et Valeur, trié de A à Z selon le nom, sans tenir compte de la casse. Les longues valeurs, comme une signature DKIM, défilent latéralement dans le tableau.
- Saisissez un terme dans Filtrer par nom ou valeur pour réduire les lignes. Le compteur passe par exemple de « 12 en-têtes » à « 3 sur 12 en-têtes », et le filtre ignore la casse.
- Cliquez sur Copier en JSON pour mettre tous les en-têtes analysés dans le presse-papiers. Modifier les en-têtes ramène au texte collé, toujours présent : vous pouvez corriger une ligne et relancer l'analyse.
Analyse d'en-têtes de mail : un exemple concret
Le bloc d'exemple contient une ligne d'état de réponse (HTTP/1.1 200 OK), trois en-têtes ordinaires, deux lignes Set-Cookie (dont une en minuscules) et un en-tête Received replié sur une deuxième ligne.
Dans le mode par défaut « E-mail / RFC 5322 », cela donne quatre lignes. Les deux cookies partagent une ligne, la valeur repliée de Received est jointe en une seule ligne, et la ligne d'état figure parmi les lignes ignorées, faute de nom avant les deux-points. « Copier en JSON » donne :
{"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"]}
La ligne fusionnée garde la première graphie rencontrée, set-cookie, et devient un tableau parce que l'en-tête est apparu deux fois. Un en-tête présent une seule fois reste une simple chaîne de caractères.
HTTP strict ou E-mail / RFC 5322 : quel mode choisir
Les deux modes ne diffèrent que par le traitement d'une ligne qui commence par un espace ou une tabulation.
- E-mail / RFC 5322 : la ligne est jointe à la précédente par un seul espace. C'est le bon choix pour les en-têtes d'e-mail, où de longues valeurs comme Received et DKIM-Signature sont réparties sur plusieurs lignes.
- HTTP strict : la ligne est rejetée et signalée comme ignorée, sans être jointe. C'est le bon choix pour les requêtes et réponses HTTP, où une ligne indentée n'est pas une suite et où vous voulez la voir signalée.
En cas de doute, gardez le mode par défaut. C'est le plus tolérant des deux.
Ce que l'outil ignore, fusionne ou laisse tel quel
- Le découpage se fait au premier deux-points. Le nom est tout ce qui précède, la valeur tout ce qui suit : une valeur qui contient des deux-points, comme une date ou une URL, reste entière.
- Lignes ignorées : une ligne sans nom avant les deux-points n'est pas un en-tête. Cela couvre une ligne d'état HTTP (
HTTP/1.1 200 OK), une ligne de requête (GET /index.html HTTP/1.1) et le texte isolé. Une note au-dessus du tableau compte les lignes ignorées et affiche les cinq premières. - Pseudo-en-têtes : les noms HTTP/2 qui commencent par deux-points, comme
:authorityet:method, sont acceptés et placés tout en haut. - Noms répétés : ils sont comparés sans tenir compte de la casse. Chaque valeur garde sa propre ligne dans le tableau, dans l'ordre d'apparition.
- Valeurs vides : un en-tête sans rien après les deux-points s'affiche « (vide) ».
- Les lignes vides sont ignorées, mais elles ne terminent pas les en-têtes. Toute ligne suivante avec un nom et des deux-points, même issue du corps d'un e-mail, devient une ligne du tableau : ne copiez donc que le bloc d'en-têtes.
Voir l'en-tête d'un email : ce que cet outil ne fait pas
Il met le texte en forme, rien de plus. Il ne retrace pas le trajet d'un message, ne vérifie ni SPF, ni DKIM, ni DMARC, ne dit pas si un e-mail est un spam ou un message authentique, et ne décode aucune valeur : les mots encodés comme =?UTF-8?B?…?= et les chaînes Base64 restent affichés tels que vous les avez collés. Pour obtenir l'expéditeur, les résultats d'authentification et le trajet de serveur en serveur d'un e-mail, utilisez plutôt « Analyseur d'en-têtes d'e-mail ».
L'analyse s'effectue dans votre navigateur et les en-têtes collés ne sont ni envoyés ni enregistrés. C'est important ici, car les blocs d'en-têtes contiennent souvent des cookies de session, des clés d'API et des adresses e-mail.
Questions fréquentes
Comment copier les en-têtes de requête dans Chrome ?
Ouvrez les outils de développement, allez dans l'onglet Réseau et rechargez la page. Faites un clic droit sur la requête et choisissez dans le menu l'option de copie des en-têtes de requête (ou de réponse). Collez le résultat dans « En-têtes bruts » puis cliquez sur « Analyser les en-têtes ». Firefox propose le même menu de copie sur une requête de son onglet Réseau. Avec curl -i, collez seulement les lignes d'en-tête, pas le corps de la réponse qui suit.
Les noms d'en-têtes HTTP sont-ils sensibles à la casse ?
Non : Content-Type, content-type et CONTENT-TYPE désignent le même en-tête, donc l'outil les fusionne sur une seule ligne sous la graphie apparue en premier. Les valeurs restent telles qu'écrites, à part les espaces retirés au début et à la fin, car certaines valeurs, comme celles des cookies et des jetons, sont sensibles à la casse.
Peut-on avoir plusieurs Set-Cookie dans une même réponse ?
Oui. Une réponse envoie une ligne Set-Cookie par cookie, et Set-Cookie est l'exemple classique d'un en-tête qu'on ne peut pas joindre sans risque par des virgules. L'outil liste chaque valeur de Set-Cookie sur sa propre ligne dans une seule rangée, et « Copier en JSON » transforme cette rangée en tableau. Les en-têtes Received d'un e-mail se répètent de la même façon, un par serveur.
Que sont les pseudo-en-têtes HTTP/2 comme :authority ?
Ce sont les champs de la requête que HTTP/2 écrit sous forme d'en-têtes dont le nom commence par deux-points : :method, :scheme, :authority et :path, plus :status dans les réponses. :authority porte l'hôte, comme l'en-tête Host en HTTP/1.1. L'outil considère le deux-points initial comme faisant partie du nom : ils apparaissent donc comme des lignes ordinaires, triées avant les autres en-têtes.
Comment obtenir des en-têtes sous forme de JSON ?
Collez les en-têtes, cliquez sur « Analyser les en-têtes », puis sur « Copier en JSON ». Vous obtenez un objet JSON dont les clés sont les noms d'en-têtes. Un en-tête présent une fois est une chaîne ; un en-tête répété, comme Set-Cookie, est un tableau de chaînes dans l'ordre d'apparition. Le JSON contient toujours tous les en-têtes analysés, même si le filtre masque certaines lignes.
Quel mode choisir pour lire un en-tête email ?
Prenez « E-mail / RFC 5322 », le mode par défaut. Il joint à la ligne précédente toute ligne qui commence par un espace ou une tabulation, comme pour les longues valeurs de Received ou de DKIM-Signature. Pour des réponses HTTP où vous voulez voir signalées les lignes indentées, choisissez « HTTP strict ».
Peut-on coller des cookies et des jetons dans un parser en ligne sans risque ?
L'analyse se fait dans votre navigateur et rien de ce que vous collez n'est envoyé ni enregistré : cette page n'expédie donc nulle part les cookies et les jetons d'un bloc d'en-têtes. Traitez néanmoins un cookie de session actif ou un en-tête Authorization comme un mot de passe : remplacez la valeur avant de partager les en-têtes ou le JSON avec quelqu'un.
Recommandés
-
Support d'ordinateur portable réglable Amazon BasicsPlace votre portable à hauteur des yeux pour lire un long bloc d'en-têtes sans fatiguer la nuque.
-
Barre lumineuse pour écran QuntisÉclaire le bureau quand vous traquez une mauvaise réponse tard le soir, sans reflet sur l'écran.
-
Écran portable ARZOPA 16" 144 HzGardez DevTools ou le terminal sur un second écran, à côté de vos en-têtes.
Aide à garder les outils gratuits. ✨
Images non contractuelles. En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.