Fermer
DéveloppementWeb

Infographie : Qu’est ce qu’une réponse d’en-tête HTTP ?

Six revisions nous propose une nouvelle infographie sur ce qu’est une réponse d’en-tête (header) HTTP. Pour les débutants dans le secteur Web, le but et la technicité derrière les réponses des en-têtes du serveur peuvent souvent être un peu déroutants pour l’esprit. Bien que de nombreuses choses sont à apprendre, seules quelques-unes sont nécessaires et essentielles tant pour l’utilisateur moyen, que pour les professionnels du Web.

Donc, que se cache t-il derrière ce nom un peu complexe au premier abord ? C’est ce que tente de décrire l’infographie réalisée par SEO Gadget en analysant les réponses d’en-têtes du serveur les plus fréquentes.

Introduction au protocole HTTP

Depuis 1990, le protocole HTTP (HyperText Transfer Protocol) est le protocole le plus largement utilisé sur Internet. La version 0.9 était uniquement destinée à transférer des données sur Internet, en particulier des pages Web écrites en HTML. La version 1.0 du protocole permet désormais le transfert de messages avec des en-têtes décrivant le contenu du message en utilisant un codage de type MIME.

Récemment le standard HTML5, permet pour les applications Web actuelles, de soutenir un nouveau protocole appelé WebSockets, permettant à un client Web de créer une connexion, la maintenir ouverte tant qu’il veut, et à la fois envoyer et recevoir des données en continu.

Pourquoi est générée une réponse HTTP ?

La communication entre le navigateur et le serveur se fait en deux temps :

  • Le navigateur effectue une requête HTTP
  • Le serveur traite la requête puis envoie une réponse HTTP
Infographie : Qu'est ce qu'une réponse d'en-tête HTTP ? - Communication navigateur et serveur

Une réponse HTTP est un ensemble de lignes envoyées au navigateur par le serveur qui comprend :

  • Une ligne de statut qui permet de préciser la version du protocole utilisé et le code de traitement de la requête et un texte explicatif. Ces trois éléments doivent être séparés par un espace
  • Les champs d’en-tête de la réponse définissant un ensemble de lignes facultatives permettant de donner des informations supplémentaires sur la réponse et/ou le serveur
  • Le corps de la réponse qui contient le document demandé

Voici donc un exemple de réponse HTTP :

[sourcecode language=”bash”]
Date Thu, 28 Apr 2011 17:49:00 GMT
Server Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8l DAV/2 PHP/5.3.4
X-Powered-By PHP/5.3.4
Expires Mon, 26 Jul 1997 05:00:00 GMT
Cache-Control no-cache, no-store, must-revalidate
Pragma no-cache
Last-Modified Thu, 28 Apr 2011 17:49:00 GMT
x-ua-compatible IE=8
Vary Accept-Encoding
Content-Encoding gzip
Content-Length 654
Keep-Alive timeout=5, max=93
Connection Keep-Alive
Content-Type text/html;charset=iso-8859-1
[/sourcecode]

Dans cet exemple, le code 200 nous indique que le document demandé a été trouvé. Pour faciliter la gestion du cache du client, le serveur transmet la date actuelle, la date de dernière modification du document et la date d’expiration (après laquelle le document doit être demandé à nouveau).
L’en-tête Content-Type nous apprend que le document retourné est de type HTML et l’en-tête Content-Length indique que le corps du document a une longueur de 654 octets.
L’en-tête Server renseigne sur le logiciel serveur utilisé. L’envoi d’une telle information n’est pas
recommandé d’un point de vue sécuritaire.

Les codes de réponse sont les codes que vous voyez lorsque le navigateur n’arrive pas à vous fournir la page demandée. Le code de réponse est constitué de trois chiffres, le premier indiquant la classe de statut et les suivants la nature exacte de l’erreur.

Il existe cinq classes :

  • 10x : Message d’information, ces codes ne sont pas utilisés dans la version 1.0 du protocole
  • 20x : Réussite, ces codes indiquent le bon déroulement de la transaction
  • 30x : Redirection, ces codes indiquent que la ressource n’est plus à l’emplacement indiqué
  • 40x : Erreur due au client , ces codes indiquent que la requête est incorrecte
  • 50x : Erreur due au serveur, ces codes indiquent qu’il y a eu une erreur interne du serveur

Le morceau de l’infographie ci-dessous décrit les codes d’erreurs que l’on peut rencontrer le plus fréquemment : 200, 301, 302, 304, 404, 500 et 503.

Infographie : Qu'est ce qu'une réponse d'en-tête HTTP ? - Codes de réponse

Veuillez noter que le code 200 indique que la requête a correctement été accomplie, le 404 est un classique : le serveur n’a rien trouvé à l’adresse spécifiée. Parti sans laisser d’adresse… 🙂 Enfin, le code 500 indique que le serveur a rencontré une condition inattendue qui l’a empêché de donner suite à la demande (oui je sais c’est étrange !).

Les réponses en chiffres

Comme décrit ci-dessus l’erreur 404 est la page que l’on rencontre le plus souvent. Tout le monde a un jour ou l’autre rencontré cette erreur, une page blanche accompagnée d’un texte noir incompréhensible pour la majorité des internautes. Pour d’autres, c’est l’occasion de se laisser aller sur les créations. Par exemple, Google mise sur la simplicité, ici ce site russe a sans doute la meilleure page d’erreur 404 du Web. Au programme, une musique entrainante et quelques animations superbement réalisées. Et voici la mienne 🙂
Je vous invite à visiter cette galerie de pages 404 originales pour vous donner des idées et vous en mettre plein les yeux !

Tout d’abord, sachez que l’erreur 404 est renvoyée par le serveur du site que vous visitez quand la page que vous cherchez n’existe pas/plus. Il est possible de personnaliser cette page d’erreur en redirigeant les erreurs 404 vers une page précise que vous pouvez nommer par exemple erreur404.html.

La page 404 est souvent mal aimée tant des concepteurs de site que des internautes. Pourtant, son utilité va au delà du seul fait d’informer de l’absence de la page recherchée. Son but premier est d’indiquer en effet que la ressource que l’on cherche à atteindre n’existe pas mais elle permet aussi :

  • d’expliquer pourquoi elle apparait
  • d’expliquer quelles peuvent être les sources du problème
  • de proposer des solutions pour atteindre la page initialement recherchée

Aujourd’hui les erreurs 404 représentent 30,2 % des erreurs renvoyées par les serveurs.

Infographie : Qu'est ce qu'une réponse d'en-tête HTTP ? - Pourcentage erreur 404

Des dernières statistiques intéressantes sont présentées en fin d’infographie. Elles nous donnent le pourcentage global des codes des réponses d’en-têtes HTTP.

Infographie : Qu'est ce qu'une réponse d'en-tête HTTP ? - Statistiques sur les codes de réponse

Conclusion

La réception des codes du protocole HTTP ainsi que les messages généralement associés sont très importants pour donner une courte description aux statuts de la réponse de l’en-tête HTTP..

Certains des codes ne sont pas encore utilisés, mais sont projetés. D’autres n’entraînent aucun affichage spécifique pour l’utilisateur, mais sont sous-entendus (exemple : 200).

De nos jours, il est nécessaire d’inclure une page 404. Vos internautes ne sont pas idiots. Si vous leur expliquez pourquoi cette page apparait, ils le comprendront. N’hésitez alors pas à leur expliquer que la page n’existe peut-être plus, que le lien sur lequel ils ont cliqué est peut-être erroné ou que l’info qu’ils cherchent n’est pas présente sur votre site.

Je vous laisse découvrir l’infographie complète ici.

Pensez-vous que créer une page 404 est indispensable ? Venez nous faire partager vos trouvailles…

Mots-clé : 200404en-tête HTTPerreur 404httpréponseserveur
Yohann Poiron

L’auteur Yohann Poiron

J’ai fondé le BlogNT en 2010. Autodidacte en matière de développement de sites en PHP, j’ai toujours poussé ma curiosité sur les sujets et les actualités du Web. Je suis actuellement engagé en tant qu’architecte interopérabilité.