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, Proxy-Authenticate, Proxy-Authorization, TE, Trailer, Transfer-Encoding et Upgrade. 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
définit la méthode d'authentification qui doit être utilisée pour obtenir la ressource derrière un serveur mandataire.
Proxy-Authorization
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.
Expires
La date et l'heure après lesquelles la réponse est considérée comme périmée.
Pragma
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
Un champ d'avertissement général contenant des informations sur les problèmes possibles.

Astuces client

Accept-CH
...
Content-DPR
...
DPR
...
Downlink
...
Save-Data
...
Viewport-Width
...
Width
...

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 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 et If-None-Match utilisent cette valeur pour changer le comportement de la requête.
If-Match
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
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.

Gestion de connexion

Connection
contrôle si la connexion réseau reste ouverte après la fin de la transaction en cours.
Keep-Alive
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
indique ce qui est attendu de la part du serveur afin de pouvoier gérer correctement la requête.
Max-Forwards
...

Cookies

Cookie
contient les cookies HTTP stockés précédemment envoyés par le serveur à l'aide de l'en-tête Set-Cookie.
Set-Cookie
envoie des cookies du serveur à l'agent utilisateur.
Cookie2
utilisé pour contenir un cookie HTTP, précédemment envoyé par le serveur avec l'en-tête Set-Cookie2, mais qui a été rendu obsolète par la spécification. Utilisez Cookie à la place.
Set-Cookie2
utilisé pour envoyer des cookies du serveur à l'agent utilisateur, mais a été rendu obsolète par la spécification. Utilisez Set-Cookie à la place.

Cross-Origin Resource Sharing (CORS)

Access-Control-Allow-Origin
indique si la réponse peut être partagée.
Access-Control-Allow-Credentials
indique si la réponse à la demande peut être exposée lorsque l'indicateur d'informations d'identification est vrai.
Access-Control-Allow-Headers
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
indique en-têtes pouvant être exposés dans le cadre de la réponse en listant leurs noms.
Access-Control-Max-Age
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
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
Spécifie les origines autorisées à voir les valeurs des attributs récupérés via les fonctionnalités de l'API Resource Timing, 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
indique un emplacement pour les données renvoyées.

Proxies

Forwarded
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
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
identifie l'hôte d'origine demandé à un client pour se connecter à votre proxy ou à votre équilibreur de charge.
X-Forwarded-Proto
identifie le protocole (HTTP ou HTTPS) utilisé par un client pour se connecter à votre proxy ou votre équilibreur de charge.
Via
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
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
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
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
indique la partie d'un document que le serveur doit renvoyer.
If-Range
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
situe une partie de message à l'intérieur du corps d'un message entier.

Sécurité

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
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.
Public-Key-Pins (HPKP)
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
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.
Strict-Transport-Security (HSTS)
force la communication en utilisant HTTPS au lieu de HTTP.
Upgrade-Insecure-Requests
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-Frame-Options (XFO)
indique si un navigateur doit être autorisé à afficher une page dans un <frame>, <iframe> ou <object>.
X-XSS-Protection
active le filtrage de script intersite.

Evénements envoyés par le serveur

Ping-From
...
Ping-To
...
Last-Event-ID
...

Codage de transfert

Transfer-Encoding
spécifie la forme de codage utilisée pour transférer en toute sécurité l'entité à l'utilisateur.
TE
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

Sec-WebSocket-Key
...
Sec-WebSocket-Extensions
...
Sec-WebSocket-Accept
...
Sec-WebSocket-Protocol
...
Sec-WebSocket-Version
...

Autres

Date
contient la date et l'heure à laquelle le message a été généré.
Large-Allocation
indique au navigateur que la page en cours de chargement souhaite effectuer une allocation importante.
Link
...
Retry-After
indique combien de temps l'agent utilisateur doit attendre avant de faire une autre demande consécutive.
SourceMap
Liens ayant généré du code sur une source.
Upgrade
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é.
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.
X-DNS-Prefetch-Control
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./dd>
X-Firefox-Spdy
...
X-Requested-With
...
X-UA-Compatible
...

Contribuer

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

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : SphinxKnight, Alpha, loella16, shadok, vbardales
Dernière mise à jour par : SphinxKnight,