HTTP header : une vue d’ensemble pour les utilisateurs
Lorsque vous visitez un site Web, votre navigateur envoie une demande au serveur Web pour obtenir des données ou des informations, par exemple un fichier HTML (c’est-à-dire une page Web). Tant dans la requête - la requête HTTP – que dans la réponse du serveur, certaines méta-informations sont échangées en plus des données réelles. Ceci est résumé dans l’en-tête HTTP. Nous expliquons la fonction de l’HTTP header et ses principaux champs.
- Domaine .eu ou .fr + éditeur de site gratuit pendant 6 mois
- 1 certificat SSL Wildcard par contrat
- Boîte email de 2 Go
Fonction de l’en-tête expliquée à l’aide d’un exemple
Lorsque le site Web www.exemple.com est consulté, le serveur Web renvoie non seulement le site lui-même, mais aussi l’en-tête suivant (invisible pour les utilisateurs) :
Les lignes individuelles sont appelées « champs d’en-tête ». Chacun (sauf le premier) est constitué d’une paire nom/valeur séparée par deux points.
Explications pour les différentes lignes :
- HTTP/1.1 est la version valide du protocole HTTP.
- 200 OK est le code de statut. Il indique que le serveur a reçu, compris et accepté la demande.
- Content-Encoding et Content-Type fournissent des informations sur le type de fichier.
- Age, Cache-Control, Expires, Vary et X-Cache font référence à la mise en cache du fichier.
- Etag et Last-Modified sont utilisés pour le contrôle de la version du fichier livré.
- Le terme « server » désigne le logiciel du serveur Web.
- Content-Length est la taille du fichier en octets.
Comme on peut facilement le constater, cette information d’en-tête est principalement utilisée pour la coordination entre le client (navigateur) et le serveur : elle garantit que le client peut comprendre la forme du fichier, que le fichier est suffisamment à jour et que la taille du fichier répond aux attentes du navigateur.
Les lignes d’en-tête indiquées dans l’exemple ne représentent qu’une petite partie des champs d’en-tête disponibles. Au total, il existe près de 100 champs d’en-tête HTTP, dont environ 30 servent à spécifier des requêtes HTTP, environ 30 à la réponse du serveur, et toute une série d’autres champs d’en-tête qui servent à différentes fins et ne sont pas (encore) partiellement normalisés.
Le tableau suivant explique les principaux champs d’en-tête.
Aperçu des principaux champs d’HTTP header
Request header (demande du client)
Champ d’en-tête | Signification | Exemple |
---|---|---|
Accept | Les types de contenu que le client peut traiter ; si le champ est vide, il s’agit de tous les types de contenu. | Accept: text/html, application/xml |
Accept-Charset | Quels jeux de caractères le client peut afficher. | Accept-Charset: utf-8 |
Accept-Encoding | Les formats compressés pris en charge par le client. | Accept-Encoding: gzip |
Accept-Language | Version linguistique souhaitée | Accept-Language: fr-FR |
Authorization | Données d’authentification (par exemple pour un login) | Basic WjbU7D25zTAlV2tZ7== |
Cache-Control | Options du mécanisme de mise en cache | Cache-Control: no-cache |
Cookie | Cookie stocké pour ce serveur | Cookie: $Version=1; Content=23 |
Content-Length | Longueur de l’organisme demandeur | Content-Length: 212 |
Content-Type | Type MIME ; pertinent pour les requêtes POST et PUT | Content-Type: application/x_222-form-urlencoded |
Date | Date et heure de la demande | Date: Mon, 9 March 2020 09:02:22 GMT |
Expect | Formule une attente au serveur, généralement la réception d’une demande importante. | Expect: 100-continue (le serveur doit envoyer le code 100 lorsqu’il est prêt à recevoir la requête) |
Host | Nom de domaine du serveur | Host: exemple.fr |
If-Match | Exécution conditionnelle d’une action, en fonction de la concordance d’un code transmis | If-Match: „ft678iujhnjio90’pöl“ |
If-Modified-Since | Envoyer uniquement si le contenu demandé a été modifié depuis le moment spécifié | IF-Modified-Since: Mon 2 Mar 2020 1:00:00 GMT |
If-None-Match | Comme ci-dessus, mais spécifié via un ETag (Entity-Tag = tag d’entité, voir ci-dessous) | If-None-Match: „cxdrt5678iujhgbvb“ |
If-Range | Ne demande que la partie du contenu qui a été modifiée ou qui manque dans le cache du client | If-Range: Mon 2 Mar 2020 1:00:00 GMT |
If-Unmodified-Since | Analogue à IF-Modified-Since | If-Modified-Since: Mon 2 Mar 2020 1:00:00 GMT |
Max-Forwards | Définit le nombre maximum de fois que la réponse du serveur peut être transmise | Max-Forwards: 12 |
Proxy-Authorization | Utilisé pour authentifier le client auprès d’un serveur proxy | Proxy-Authorization: Basic WjbU7D25zTAlV2tZ7== |
Range | Précise une partie du contenu demandé | Range: bytes=0-9999 |
Referrer | URL de la ressource à partir de laquelle la demande est faite (c’est-à-dire à partir de laquelle le lien a été créé) | Referrer: https://exemple.fr/index.html |
TE | Codage de transfert d’extension accepté | TE: gzip, deflate |
User-Agent | User-Agent du client (simplement dit : le navigateur) | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36 |
- Améliorez votre classement sur Google sans les frais d'une agence
- Répondez aux avis clients et générez des publications pour les réseaux
- Aucune connaissance en référencement et marketing en ligne requise
Response header (réponse du serveur)
Champ d’en-tête | Signification | Exemple |
---|---|---|
Accept-Ranges | Unités que le serveur accepte pour les spécifications de la plage (voir ci-dessus) | Accept-Ranges: bytes |
Age | Nombre de secondes pendant lesquelles l’objet a été dans la mémoire cache | Age: 2300 |
Allow | Types de demandes autorisées pour une ressource spécifique | Allow: GET, POST, HEAD |
Cache-Control | Si l’objet peut être conservé dans le cache et pendant combien de temps | Cache-Control: max-age=4800 |
Connection | Type de connexion préféré | Connection: close |
Content-Encoding | Type de compression | Content-Encoding: deflate |
Content-Language | Langue de la ressource | Content-Language: fr-FR |
Content-Length | Taille du corps en octets | Content-Length: 135674 |
Content-Location | Emplacement du fichier s’il provient d’un endroit différent de celui demandé (par exemple CDN) | Content-Location: /exemple.fr |
Content-Security-Policy | Concepts de sécurité du serveur | Content-Security-Policy: frame-src ‘none’; object-src ‘none’ |
Content-Type | Type MIME du dossier demandé | Content-Type: text/tml; charset=utf-8 |
Date | Délai de réponse | Date: Mon 2 Mar 2020 1:00:00 GMT |
ETag | Marque une version spécifique du fichier | ETag: „vt6789oi8uztgfvbn“ |
Expires | Quand le dossier doit être considéré comme obsolète | Expires: Tue 3 Mar 2020 1:00:00 GMT |
Last-Modified | Date de la dernière modification du dossier | Last-Modified: Mon 2 Mar 2020 1:00:00 GMT |
Location | Identifie le lieu où la demande a été transmise | Location: https://www.exemple.fr |
Proxy-Authenticate | Indique si et comment le client doit s’authentifier auprès du proxy | Proxy-Authenticate: Basic |
Retry-After | A partir de quand le client doit faire une nouvelle demande si la ressource est temporairement indisponible (date ou secondes) | Retry-After: 300 |
Server | Identification du serveur | Server: Apache |
Set-Cookie | Installe un cookie chez le client | Set-Cookie: UserID=XY; Max-Age=3800; Version=1 |
Transfer-Encoding | Méthode de compression | Transfer-Encoding: gpzip |
Vary | Indique quels champs d’en-tête doivent être considérés comme variables si un fichier est demandé dans le cache | Vary: User-Agent (= le serveur contient différentes versions de fichiers selon l’User Agent) |
Via | Via quels proxies la réponse a été envoyée | Via : 1.1www.exemple.fr |