En-têtes HTTP

Les en-têtes HTTP permettent au client et au serveur de transmettre des informations supplémentaires avec la requête ou la réponse. Un en-tête de requête est constitué de son nom (insensible à la casse) suivi d'un deux-points :, puis de sa valeur (sans saut de ligne). L'espace blanc avant la valeur est ignoré.

Des en-têtes propriétaires personnalisés peuvent être ajoutés en utilisant le préfixe X-, mais cette convention a été abandonnée en juin 2012, en raison des inconvénients qu'elle a présenté lorsque des champs non standard sont devenus standard dans RFC 6648; les autres en-têtes possibles sont listés dans une liste IANA et ont été définis dans la RFC 4229. IANA maintient également une liste des propositions de nouveaux entêtes HTTP.

Les en-têtes peuvent être groupés selon leur contexte :

  • En-tête général : en-têtes s'appliquant à la fois aux requêtes et aux réponses mais sans rapport avec les données éventuellement transmises dans le corps de la requête ou de la réponse.
  • En-tête de requête : en-têtes contenant plus d'informations au sujet de la ressource à aller chercher ou à propos du client lui-même.
  • En-tête de réponse : en-têtes contenant des informations additionnelles au sujet de la réponse comme son emplacement, ou au sujet du serveur lui-même (nom et version, etc.)
  • En-tête d'entité : en-têtes contenant plus d'informations au sujet du corps de l'entité comme la longueur de son contenu ou son type MIME.

Les en-têtes peuvent aussi être groupés par la manière dont les serveurs mandataires (proxies) les traitent :

En-têtes de bout en bout ('End-to-end headers') :

Ces entêtes doivent être transmis au destinataire final du message ; c'est-à-dire le serveur dans le cas d'une requête ou le client dans le cas d'une réponse. Les serveurs mandataires intermédiaires doivent retransmettre les en-têtes de bout en bout sans modification et doivent les mettre en cache.

En-têtes de point à point ('Hop-by-hop headers') :

Ces en-têtes n'ont de sens que pour une unique connexion de la couche transport et ne doivent pas être retransmis par des serveurs mandataires ou mis en cache. Il s'agit d'en-têtes tels que: Connection, Keep-Alive (en-US), Proxy-Authenticate (en-US), Proxy-Authorization (en-US), TE (en-US), Trailer, Transfer-Encoding (en-US) et Upgrade (en-US). A noter que seuls les en-têtes de point à point peuvent être utilisés avec l'en-tête général Connection.

La liste suivante résume les en-têtes HTTP en fonction de leur utilisation. Une liste triée par ordre alphabétique est disponible dans le panneau de navigation à gauche.

Authentification

WWW-Authenticate

définit la méthode d'authentification qui doit être utilisée pour obtenir l'accès à la ressource.

Authorization

contient les informations d'identification pour authentifier un agent utilisateur avec un serveur.

Proxy-Authenticate (en-US)

définit la méthode d'authentification qui doit être utilisée pour obtenir la ressource derrière un serveur mandataire.

Proxy-Authorization (en-US)

contient les informations d'identification nécessaires pour authentifier un agent utilisateur avec un serveur mandataire.

Mise en cache

Age

la durée en secondes passée par l'objet dans un cache proxy.

Cache-Control

spécifie des directives pour les mécanismes de mise en cache dans les requêtes et les réponses.

Clear-Site-Data (en-US)

nettoie les données de navigation (mouchards (cookies), stockage et cache) associé au site demandé.

Expires

la date et l'heure après lesquelles la réponse est considérée comme périmée.

Pragma (en-US)

en-tête spécifique à la mise en œuvre pouvant avoir divers effets le long de la chaîne de requête-réponse. Utilisé pour la rétrocompatibilité avec les caches HTTP / 1.0 où l'en-tête Cache-Control n'est pas encore présent.

Warning (en-US)

un champ d'avertissement général contenant des informations sur les problèmes possibles.

Astuces client

Les astuces clients HTTP sont enc cours de création. La documentation actuelle est disponible sur le site du groupe de travail sur HTTP.

Accept-CH (en-US) Expérimental

les serveurs peuvent informer de leur niveau de support pour les Client Hints en utilisant l'en-tête Accept-CH ou en HTML avec l'élément <meta> ayant l'attribut http-equiv ([HTML5]).

Accept-CH-Lifetime (en-US) Expérimental

les serveurs peuvent demander au client de mémoriser l'ensemble des Client Hints que le serveur supporte pour une période de temps donnée, afin de permettre la livraison de Client Hints sur les requêtes suivantes vers l'origine du serveur ([RFC6454]).

Content-DPR (en-US) Expérimental

un nombre indiquant le rapport entre le nombre de pixels physiques et le nombre de pixels CSS de l'image réponse sélectionnée.

DPR (en-US) Expérimental

un nombre indiquant le Device Pixel Ratio (DPR) actuel du client, qui est le rapport du nombre de pixels physiques sur le nombre de pixels CSS (Section 5.2 of [CSSVAL]) de la zone d'affichage (Section 9.1.1 of [CSS2]) sur l'appareil.

Device-Memory (en-US) Expérimental

faisant techniquement partie de l'API Device Memory, cet en-tête représente la quantité approximative de mémoire vive dont le client dispose.

Early-Data (en-US) Expérimental

indique que les requêtes doivent être communiquées en TLS early data.

Save-Data (en-US) Expérimental

booléen indiquant les préférences de l'agent utilisateur pour réduire la quantité de données transmises.

Viewport-Width (en-US) Expérimental

la largeur de la zone d'affichage, soit le nombre de pixels CSS. La valeur fournise est arrondie au plus grand proche supérieur. Si Viewport-Width apparait dans un message plus d'une fois, la dernière valeur écrase toutes les valeurs précédentes.

Width (en-US) Expérimental

l'en-tête de requête Width représente la largeur de la ressource voulue en nombre de pixels physiques. La valeur fournise est arrondie au plus proche entier supérieur. Si la largeur de la ressource voulue est inconnue quand la requête ou la ressource n'a pas de largeur d'affichage, l'en-tête Width peut être omise. Si Width apparait dans un message plus d'une fois, la dernière valeur écrase toutes les valeurs précédentes.

Conditionnels

Last-Modified

c'est un validateur, la dernière date de modification de la ressource, utilisée pour comparer plusieurs versions de la même ressource. Il est moins précis que ETag, mais plus facile à calculer dans certains environnements. Les requêtes conditionnelles utilisant If-Modified-Since et If-Unmodified-Since (en-US) utilisent cette valeur pour modifier le comportement de la requête.

ETag

c'est un validateur, une chaîne unique identifiant la version de la ressource. Les requêtes conditionnelles utilisant If-Match (en-US) et If-None-Match utilisent cette valeur pour changer le comportement de la requête.

If-Match (en-US)

rend la requête conditionnelle et n'applique la méthode que si la ressource stockée correspond à l'un des ETags donnés.

If-None-Match

rend la requête conditionnelle et n'applique la méthode que si la ressource stockée ne correspond à aucun des ETags donnés. Ceci est utilisé pour mettre à jour les caches (pour les requêtes sécurisées), ou pour empêcher de télécharger une nouvelle ressource lorsqu'elle existe déjà.

If-Modified-Since

rend la requête conditionnelle et attend que l'entité soit transmise seulement si elle a été modifiée après la date donnée. Ceci est utilisé pour transmettre des données uniquement lorsque le cache est obsolète.

If-Unmodified-Since (en-US)

rend la demande conditionnelle et attend que l'entité soit transmise seulement si elle n'a pas été modifiée après la date donnée. Ceci est utilisé pour assurer la cohérence d'un nouveau fragment d'une plage spécifique avec les précédentes, ou pour implémenter un système de contrôle de concurrence optimiste lors de la modification de documents existants.

Vary

détermine comment faire correspondre les futurs en-têtes de demande pour décider si une réponse mise en cache peut être utilisée plutôt que d'en demander une nouvelle au serveur d'origine.

Gestion de connexion

Connection

contrôle si la connexion réseau reste ouverte après la fin de la transaction en cours.

Keep-Alive (en-US)

contrôle la durée pendant laquelle une connexion persistante doit rester ouverte.

Négociation de contenu

Accept

informe le serveur des types de données pouvant être renvoyés. C'est un type MIME.

Accept-Charset

informe le serveur du jeu de caractères que le client peut comprendre.

Accept-Encoding

informe le serveur sur l'algorithme de codage, généralement un algorithme de compression, qui peut être utilisé sur la ressource renvoyée.

Accept-Language

informe le serveur de la langue que le serveur doit renvoyer. Ceci est un indice et n'est pas nécessairement sous le contrôle total de l'utilisateur : le serveur doit toujours faire attention à ne pas remplacer un choix explicite de l'utilisateur (telle la sélection d'une langue dans une liste déroulante).

Contrôles

Expect (en-US)

indique ce qui est attendu de la part du serveur afin de pouvoier gérer correctement la requête.

Max-Forwards (en-US)

...

Cookies

contient les cookies HTTP stockés précédemment envoyés par le serveur à l'aide de l'en-tête Set-Cookie.

envoie des cookies du serveur à l'agent utilisateur.

Cross-Origin Resource Sharing (CORS)

Access-Control-Allow-Origin

indique si la réponse peut être partagée.

Access-Control-Allow-Credentials (en-US)

indique si la réponse à la demande peut être exposée lorsque l'indicateur d'informations d'identification est vrai.

Access-Control-Allow-Headers (en-US)

utilisé en réponse à une demande de contrôle en amont pour indiquer quels en-têtes HTTP peuvent être utilisés lors de la requête effective.

Access-Control-Allow-Methods

spécifie la ou les méthodes autorisées lors de l'accès à la ressource en réponse à une demande de contrôle en amont.

Access-Control-Expose-Headers (en-US)

indique en-têtes pouvant être exposés dans le cadre de la réponse en listant leurs noms.

Access-Control-Max-Age (en-US)

indique la durée pendant laquelle les résultats d'une demande de contrôle en amont peuvent être mis en cache.

Access-Control-Request-Headers

utilisé lors de l'émission d'une demande de contrôle en amont pour indiquer au serveur les en-têtes HTTP qui seront utilisés lors de la requête effective.

Access-Control-Request-Method (en-US)

Utilisé lors de l'émission d'une demande de contrôle en amont pour indiquer au serveur la méthode HTTP à utiliser lors de la requête.

Origin

indique l'origine d'une consultation.

Timing-Allow-Origin (en-US)

spécifie les origines autorisées à voir les valeurs des attributs récupérés via les fonctionnalités de l'API Resource Timing (en-US), qui seraient autrement signalées comme étant zéro en raison des restrictions d'origines croisées.

Ne pas suivre

DNT

utilisé pour exprimer la préférence de suivi de l'utilisateur.

Tk

indique l'état de suivi appliqué à la demande correspondante.

Téléchargements

Content-Disposition

est un en-tête de réponse si la ressource transmise doit être affichée en ligne (comportement par défaut lorsque l'en-tête n'est pas présent), ou doit être traitée comme un téléchargement et le navigateur doit présenter une fenêtre "Enregistrer sous".

Informations sur le corps du message

Content-Length

indique la taille du corps d'entité, en nombre décimal d'octets, envoyée au destinataire.

Content-Type

indique le type de média de la ressource.

Content-Encoding

utilisé pour spécifier l'algorithme de compression.

Content-Language

décrit la (les) langue(s) destinée(s) à l'audience, de sorte qu'elle permette à l'utilisateur de se différencier en fonction de la langue préférée de l'utilisateur.

Content-Location (en-US)

indique un emplacement pour les données renvoyées.

Proxies

Forwarded (en-US)

contient des informations du côté client des serveurs proxy qui sont modifiées ou perdues lorsqu'un proxy est impliqué dans le chemin de la requête.

X-Forwarded-For (en-US) Non-standard

identifie les adresses IP d'origine d'un client se connectant à un serveur Web via un proxy HTTP ou un répartiteur de charge.

X-Forwarded-Host (en-US) Non-standard

identifie l'hôte d'origine demandé à un client pour se connecter à votre proxy ou à votre équilibreur de charge.

X-Forwarded-Proto (en-US) Non-standard

identifie le protocole (HTTP ou HTTPS) utilisé par un client pour se connecter à votre proxy ou votre équilibreur de charge.

Via (en-US)

ajoutés par des proxies, directs et inverses, et peuvent apparaître dans les en-têtes de requête et les en-têtes de réponse.

Redirection

Location

indique l'URL de la page de redirection.

Contexte de requête

From (en-US)

contient une adresse électronique Internet pour un utilisateur humain qui contrôle l'agent utilisateur demandeur.

Host

indique le nom de domaine du serveur (pour l'hébergement virtuel) et (facultativement) le numéro de port TCP sur lequel le serveur écoute.

Referer

L'adresse de la page Web précédente à partir de laquelle un lien vers la page actuellement demandée a été suivi.

Referrer-Policy

indique quelles informations de provenance envoyées dans l'en-tête Referer doivent être incluses dans les requêtes effectuées.

User-Agent (en-US)

contient une chaîne caractéristique qui permet aux homologues du protocole réseau d'identifier le type d'application, le système d'exploitation, le fournisseur du logiciel ou la version du logiciel de l'agent utilisateur du logiciel demandeur. Voir aussi la référence de chaîne de l'agent utilisateur Firefox.

Contexte de réponse

Allow

répertorie l'ensemble des méthodes de requête HTTP prises en charge par une ressource.

Server

contient des informations sur le logiciel utilisé par le serveur d'origine pour gérer la demande.

Demandes de plage

Accept-Ranges (en-US)

indique si le serveur prend en charge les demandes de plage et, le cas échéant, dans quelle unité la plage peut être exprimée.

Range (en-US)

indique la partie d'un document que le serveur doit renvoyer.

If-Range (en-US)

crée une requête de plage conditionnelle qui n'est remplie que si l'étiquette et la date correspondent à la ressource distante. Utilisé pour empêcher le téléchargement de deux plages à partir d'une version incompatible de la ressource.

Content-Range (en-US)

situe une partie de message à l'intérieur du corps d'un message entier.

Sécurité

Cross-Origin-Embedder-Policy (en-US) (COEP)

autorise un serveur à déclarer une règlementation sur les contenus embarqués pour un document donné.

Cross-Origin-Opener-Policy (en-US) (COOP)

interdit les autres domaines d'ouvrir ou de contrôler une fenêtre.

Cross-Origin-Resource-Policy (en-US) (CORP)

interdit les autre domaines de lire la réponse des ressources si cet en-tête leur est appliqué.

Content-Security-Policy (CSP)

contrôle les ressources que l'agent utilisateur est autorisé à charger pour une page donnée.

Content-Security-Policy-Report-Only

permet aux développeurs web d'expérimenter des stratégies en surveillant (mais non en appliquant) leurs effets. Ces rapports de violation sont constitués de documents JSON envoyés via une requête HTTP POST à l'URI spécifié.

Expect-CT (en-US)

permet aux sites de contrôler de manière stricte ou non l'adhérence aux règles de transparence des certificats, permettant ainsi de limiter les utilisations frauduleuses du certificat associé au site grâce à une vérification publique.

Feature-Policy

permet d'autoriser ou d'interdire l'utilisation de fonctionnalités du navigateur dans son propre cadre et dans les cadres embarqués.

Origin-Isolation Expérimental

permet aux application web d'isoler leurs origines.

Strict-Transport-Security (en-US) (HSTS)

force la communication en utilisant HTTPS au lieu de HTTP.

Upgrade-Insecure-Requests (en-US)

envoie un signal au serveur exprimant la préférence du client pour une réponse chiffrée et authentifiée, et qu'il peut gérer avec succès la directive upgrade-insecure-requests.

X-Content-Type-Options

désactive le repérage MIME et force le navigateur à utiliser le type donné dans Content-Type.

X-Download-Options

indique que le navigateur (Internet Explorer uniquement) ne doit pas affiche l'option permettant d'ouvrir un fichier qui a été téléchargé depuis une application, pour empêcher les attaques par hameçonnage puisque le fichier pourrait autrement obtenir le droit de s'exécuter dans le contexte de l'application. Note : voir le bogue MS Edge associé.

X-Frame-Options (XFO)

indique si un navigateur doit être autorisé à afficher une page dans un <frame>, <iframe> ou <object>.

X-Permitted-Cross-Domain-Policies

Spécifie si un fichier de règlementation interdomaines (crossdomain.xml) est autorisé. Ce fichier peut définir une règle pour accorder aux clients (comme Adobe Flash Player, Adobe Acrobat, Microsoft Silverlight ou Apache Flex) la permission de gérer des données entre domaines qui seraient autrement restreintes à cause de Same-Origin Policy. Voir la spécification Cross-domain Policy File pour plus d'informations.

X-Powered-By

peut être défini par l'environnement hôte ou par d'autres cadriciels, il contient des informations sur eux sans fournir aucun information utile à l'application ni aux visiteurs. Désactivez cet en-tête pour éviter d'exposer des informations et des vulnérabilités potentielles.

X-XSS-Protection (en-US)

active le filtrage de script intersite.

HTTP Public Key Pinning HPKP

HTTP Public Key Pinning a été déprécié et supprimé au profit de Certificate Transparency et Expect-CT (en-US).

Public-Key-Pins (en-US)

associe une clé publique cryptographique spécifique à un certain serveur web pour réduire le risque d'attaques MitM à l'aide de certificats falsifiés.

Public-Key-Pins-Report-Only (en-US)

envoie des rapports au report-uri spécifié dans l'en-tête et permet toujours aux clients de se connecter au serveur même si l'association à la clé cryptographique est violée.

En-têtes de requêtes de métadonnées

Sec-Fetch-Site (en-US)

en-tête de requête indiquant la relation entre l'origine ayant initiée la requête et l'origine cible ; c'est un en-tête srtucutré dont la valeur peut être cross-site, same-origin, same-site ou none.

Sec-Fetch-Mode (en-US)

en-tête de requête indiquant le mode de requête à un serveur ; c'est un en-tête structuré dont la valeur peut être cors, navigate, nested-navigate, no-cors, same-origin ou websocket.

Sec-Fetch-User (en-US)

en-tête de requête indiquant si une requête de navigation a été déclenchée ou non par une action de l'utilisateur ; c'est un en-tête structuré dont la valeur est un booléen, soit ?0 ou pour faux et ?1 pour vrai.

Sec-Fetch-Dest (en-US)

en-tête de requête indiquant la destination de la requête à un serveur ; c'est un en-tête structuré dont la valeur peut être audio, audioworklet, document, embed, empty, font, image, manifest, object, paintworklet, report, script, serviceworker, sharedworker, style, track, video, worker, xslt ou nested-document.

Évènements envoyés par le serveur

Last-Event-ID

...

NEL (en-US) Expérimental

permet aux développeurs de déclarer une règlementation de rapportage d'erreur réseau.

Ping-From

...

Ping-To

...

Report-To

utilisé pour spécifier un serveur de destination pour que le navigateur puisse y envoyer des rapports d'avertissements ou d'erreurs.

Codage de transfert

Transfer-Encoding (en-US)

spécifie la forme de codage utilisée pour transférer en toute sécurité l'entité à l'utilisateur.

TE (en-US)

spécifie les encodages de transfert que l'agent utilisateur est prêt à accepter.

Trailer

permet à l'expéditeur d'inclure des champs supplémentaires à la fin du message segmenté.

WebSockets

Autres

Accept-Push-Policy Expérimental

...

Accept-Signature Expérimental

...

Alt-Svc (en-US)

...

Date

contient la date et l'heure à laquelle le message a été généré.

Large-Allocation (en-US)

indique au navigateur que la page en cours de chargement souhaite effectuer une allocation importante.

...

Push-Policy Expérimental

...

Retry-After (en-US)

indique combien de temps l'agent utilisateur doit attendre avant de faire une autre demande consécutive.

Signature Expérimental

communique une liste de signatures pour un échange, chacune accompagnée d'informations sur la manière de déterminer son autorité et de rafraichir cette signature.

Signed-Headers Expérimental

identifie une liste ordonnée de champs d'en-tête de réponse à inclure dans une signature.

Server-Timing (en-US)

communique un ou plusieurs indicateurs et descriptions pour le cycle requête-réponse donné.

Service-Worker-Allowed

utilisé pour supprimer la restriction de chemin en incluant cet en-tête dans la réponse d'un script Service Worker.

SourceMap (en-US)

liens ayant généré du code sur une source.

Upgrade (en-US)

le document RFC associé pour le champ d'en-tête Upgrade est RFC 7230, section 6.7. Le standard établit des règles pour la mise à niveau ou la modification d'un protocole différent sur le client, le serveur et la connexion au protocole de transport actuels. Par exemple, cette norme d'en-tête permet à un client de passer de HTTP 1.1 à HTTP 2.0, en supposant que le serveur décide de reconnaître et d'implémenter le champ d'en-tête Upgrade. Une requête de ce type ne peut etre contraignante et le serveur peut répondre en utilisant le protocole initial. Il peut être utilisé dans les en-têtes client et serveur. Si le champ d'en-tête Upgrade est spécifié, l'expéditeur DOIT également envoyer le champ d'en-tête Connection avec l'option de mise à niveau spécifiée. Pour plus de détails sur le champ d'en-tête Connection, veuillez vous reporter à la section 6.1 du RFC susmentionné.

X-DNS-Prefetch-Control (en-US)

contrôle le préchargement DNS, fonctionnalité par laquelle les navigateurs effectuent de manière proactive la résolution du nom de domaine sur les deux liens que l'utilisateur peut choisir de suivre ainsi que les URL des éléments référencés par le document, y compris les images, CSS, JavaScript, etc.

X-Firefox-Spdy Obsolète Non-standard

...

X-Pingback Non-standard

...

X-Requested-With

...

X-Robots-Tag Non-standard

indique comment une page doit être indexée dans les résultats publics des moteurs de recherche ; cet en-tête est équivalent à <meta name="robots" content="...">

X-UA-Compatible Non-standard

Utilisé par Internet Explorer pour signaler quel mode de document utiliser.

Contribuer

Vous pouvez contribuer en ajoutant un nouvel en-tête à la liste (en-US) ou en améliorant la documentation existante.

Voir aussi