Le protocole HTTP et l'analyse des en-têtes HTTP

Analyser les en-têtes HTTP de vos pages avec notre outil gratuit:


Visualiser l'en-tête HTTP de cette URL :
ANALYSER


Pour lancer l'analyse, il vous suffit de saisir le lien vers votre page dans la zone ci-dessus et de cliquer sur le bouton Analyser.

Vous pourrez alors accéder au rapport d'analyse de l'en-tête HTTP de la requête et de la réponse de votre page. Pour chaque en-tête HTTP, vous pourrez voir la liste de tous les champs HTTP contenus par ces entêtes. L'outil fournit également le code HTTP de l'en-tête de la réponse HTTP. Les principales valeurs sont listées ci-dessous.

Ce visualiseur HTTP (en anglais : HTTP Viewer) est un outil très pratique pour vérifier des points techniques (compression, erreurs...) et le SEO de son site (les redirections 301, 302...)

Qu'est-ce que le protocole HTTP ?

Le protocole HTTP (acronyme de Hypertext Transfer Protocol) est le protocole réseau utilisé par les navigateurs Web (Firefox, Internet Explorer...) et les serveurs Web (Apache, IIS...) pour communiquer entre eux. C'est lui qui est utilisé par exemple pour obtenir un fichier HTML, une image, poster un formulaire Internet. Il est donc au coeur de l'Internet. Techniquement c'est un protocole texte (donc lisible en clair) s'appuyant les protocoles plus bas-niveau TCP et IP.

Les robots des moteurs de recherche tel que le Googlebot qui explorent les sites internet (en anglais: crawling) utilisent également le protocole HTTP pour communiquer avec les serveurs Web.

Avec le protocole HTTP la communication entre un navigateur et un serveur Web est finalement assez simple. En voici le déroulé :

  • une URL telle que http://www.monsite.com/fichier.html est donnée au navigateur par un internaute
  • le navigateur en extrait le nom de domaine 'www.monsite.com' et à partir de cette information sait comment trouver le serveur Web distant (grâce à une opération dite de DNS lookup qui résout un nom de domaine en une adresse IP)
  • à partir de là une connexion (basée sur les protocoles TCP/IP) est établie entre le navigateur et le serveur Web distant
  • une requête HTTP demandant la ressource '/fichier.html' est alors transmise par le navigateur
  • le serveur Web trouve la ressource correspondante et en renvoie le contenu dans une réponse HTTP
  • le navigateur est désormais capable d'afficher le fichier HTML à l'internaute

En-tête HTTP d'une requête

Voici un exemple d'entête de requête envoyé par un navigateur tel que Safari:

GET /fichier.html HTTP/1.1[CRLF]
Host: www.monsite.com[CRLF]
User-Agent: Mozilla/5.0 Safari/531.9[CRLF]
[CRLF]

La première ligne contient toujours: le type de requête, la partie chemin de l'URL de la ressource cible et enfin la version du protocole (1.0 ou 1.1 généralement). Les 2 types de requête les plus connus sont :

  • GET : c'est pour 'obtenir' une ressource. C'est bien entendu la requête la plus utilisée sur Internet.
  • POST : c'est pour envoyer le contenu d'un formulaire HTML (les informations sont passées dans

Les [CRLF] symbolisent une séquence ASCII [10-13], appelée [Carriage Return - Line feed]. C'est en fait le délimiteur utilisé par le protocole HTTP pour séparer les lignes de l'en-tête.

Les lignes suivantes sont des champs HTTP, toujours formatées de cette manière "NomChamps: Valeur". Tout ceci constitue l'en-tête de la requête. Dans certains cas (pour les POST), il peut aussi y avoir un corps (body) pour la requête.

En-tête HTTP d'une réponse

Voici un exemple d'entête de réponse renvoyé par un serveur Web tel que Apache :

HTTP/1.1 200 OK[CRLF]
Date: Thu, 24 Sep 2009 19:37:34 GMT[CRLF]
Server: Apache/2.2.3[CRLF]
Content-Length: 7234[CRLF]
Content-Type: text/html; charset=UTF-8[CRLF]
[CRLF]
[ici se trouve le corps (body) de la réponse]

La première ligne de la réponse contient toujours le 'code' HTTP indiquant si la requête a réussi ou pas. Puis, comme pour la réponse, on trouve les lignes des champs HTTP. Tout ceci constitue l'en-tête de la réponse. Ensuite se trouve le corps de la réponse, qui dans le cas d'un GET d'un fichier HTML contient par exemple le code HTML de la page visée.

Liste des codes HTTP

Même en tant que simple internaute, on peut être confronté à des codes de réponse HTTP (par exemple quand on tape une URL incorrecte). Voici une description des principales valeurs à connaitre :

Code HTTP Explication
Code HTTP 200 : Ok Cela signifie que tout va bien et que le serveur Web renvoie le contenu d'une ressource dans le corps (body) de la réponse
Code HTTP 301 : Moved Permanently C'est une redirection permanente vers une URL indiquée dans la réponse (champs 'Location'). Cette redirection est considéree comme 'Google Friendly' et n'affecte pas votre référencement naturel (Voir l'article dédié aux redirections 301)
Code HTTP 302 : Moved temporarily C'est une redirection temporaire vers une URL indiquée. C'est moins apprécié par Google
Code HTTP 400 : Bad request Cela signifie que la requête reçue par le serveur Web ne respecte pas le format défini par le protocole HTTP
Code HTTP 401 : Unauthorized Cela signifie que l'accès à l'URL est sécurisée. Le serveur Web vous demande ainsi de lui indiquer un login/mot de passe
Code HTTP 403 : Forbidden Cela signifie qu'un login/mot de passe invalide a été donnée pour accéder à une URL sécurisée
Code HTTP 404 : File not found Cela signifie que le serveur Web n'a pas trouvé de ressource correspondant à l'URL indiquée (Voir l'article dédié)
Code HTTP 500 : Internal Error Cela signifie que le serveur Web n'a pas été capable de traiter la requête HTTP. Cela peut indiquer un problème très sérieux.

Liste des principaux champs HTTP (en anglais : HTTP fields)

Il est utile de connaitre les champs HTTP les plus connus :

Pour les requêtes :

Nom du champ HTTP Explication
Host c'est le nom du domaine visé. Un serveur Web peut gérer plusieurs domaines en même temps sur la même machine. On dit alors qu'il gère des 'virtual hosts'.
User-Agent ce champ est utilisé par les navigateurs pour indiquer leur nom. Les crawlers des moteurs de recherches utilise aussi ce champ pour se faire reconnaitre (ex: Googlebot pour Google)
Referer quand un utilisateur clique sur un lien externe à partir d'une page, le navigateur indique dans ce champ l'URL de la source. Cela peut être très utile pour analyser la source de notre trafic.

Pour les réponses :

Content-Type le serveur Web indique le type ('MIME type') de la ressource qu'il renvoie (image, html, pdf...). Il peut même indiquer parfois l'encodage des caractères du contenu. Par exemple: text/html; charset=UTF-8
Server le serveur Web indique sa signature dans ce champ.
Set-Cookie le serveur Web (souvent guidé par les lignes de code du développeur d'un site Web) peut indiquer au navigateur des valeurs de cookies. Ces valeurs seront renvoyés par le navigateur dans les requêtes futures.
Location c'est le champ utilisé lors des redirections pour indiquer la nouvelle URL cible

Dois je connaitre le protocole HTTP pour créer mon site Web ou optimiser son SEO ?

Bien sur il est possible de gérer et même de réaliser un site Web sans rien savoir du protocole HTTP. Et heureusement car sinon il y aurait peu de sites Web sur l'Internet !

Cependant ce protocole est tellement omniprésent sur l'Internet qu'une connaissance minimale de l'HTTP et du vocabulaire qui l'entoure est bien souvent très utile. Par exemple cela pourra vous permettre :

  • de savoir de quoi on parle quand vous entendez les mots GET ou POST
  • de savoir comment gérer au mieux une redirection d'Url
  • de savoir ce qui se cache derrière un message "404 File not found" affiché par un navigateur
  • et bien plus encore...

Pour en savoir plus...

Si cet article vous a donné envie de vous documenter davantage sur le protocole HTTP, voici quelques liens utiles :

D'autres articles de Yakaferci dans la rubrique Référencement et Technique peuvent vous être utiles.