Un guide sans jargon sur les codes d’état HTTP

Olivier Amici

oct. 12, 202112 min de lecture
codes d’état HTTP
Partager

TABLE DES MATIÈRES

Le HTTP, ou HyperText Transfer Protocol, est l’épine dorsale du World Wide Web. Nous sommes pratiquement certains que vous lisez cet article en ligne en ce moment même, et que vous êtes donc à la merci de ces protocoles.

Il est étonnant de constater à quel point nous considérons le HTTP comme acquis. Comme tous les langages de programmation, le HTTP possède des codes d’état et des codes d’erreur. Vous avez probablement vu des erreurs 404 et autres, mais quels sont les autres types de codes et quelle est leur signification ?

Le HTTP a été présenté pour la première fois en 1989 par Tim Berners-Lee, le célèbre "père d’Internet". Depuis lors, le code derrière Internet est devenu beaucoup plus sophistiqué. Nous vivons aujourd’hui dans le monde de l’Internet des objets, une dénomination qui fait référence aux différents appareils connectés au web. Les smart phones, les smart TV, les réfrigérateurs intelligents et même toute votre maison peuvent être connectés en ligne.

Le HTTP joue le rôle d’intermédiaire et d’interprète, permettant et améliorant la communication entre le client et le serveur. Dans ce guide, nous examinerons les codes d’état HTTP les plus courants, leur signification et la manière de les traiter.

Que sont les codes d’état HTTP ?

Ces codes à trois chiffres sont envoyés chaque fois que vous demandez une page web. Ils vous indiquent comment le serveur a traité la demande. Vous ne les remarquerez pas, à moins qu’il y ait un problème.

Des codes différents vous indiqueront si tout va bien, si c’est un problème marginal ou si c’est un problème grave.

Si vous êtes le propriétaire ou le développeur d’un site web, la compréhension des codes d’état est cruciale pour diagnostiquer et réparer les potentiels problèmes de configuration sur votre site.

Pour voir les codes lorsque vous utilisez Firefox ou Chrome, vous trouverez des extensions de navigateur qui révèlent le code relayé pour chaque requête.

Il existe un certain nombre de codes, alors entrons maintenant dans le vif du sujet.

Différents types de codes d’état HTTP

  • 100s : Codes informationnels : le serveur accuse réception de la demande initiée par le navigateur et indique qu’elle est en cours de traitement (100-199).
  • 200s : Codes de réussite : la demande est reçue, comprise, traitée et les informations attendues sont transmises au navigateur (200-299).
  • 300s : Codes de redirection : une destination différente a été substituée à la ressource demandée ; une action supplémentaire du navigateur peut être nécessaire (300-399).
  • 400s : Codes d’erreur client : site ou page non atteint ; page non disponible ou problème technique lié à la demande (400-499).
  • 500s : Codes d’erreur du serveur : la demande a été acceptée, mais en raison d’une erreur, le serveur n’a pas pu la satisfaire (500-599).

Penchons-nous plus en détail sur les différentes catégories :

Codes d’état HTTP 100

La requête est toujours en cours.

  • 100 : Continue. L’en-tête requis a été reçu et accepté, le corps de la requête est prêt à être reçu.
  • 101 : Switching Protocol. Votre navigateur demande un changement d’en-tête, le serveur s’exécute.
  • 102 : Processing. Requête reçue et en cours de traitement. La réponse n’est pas encore disponible.
  • 103 : Early hints. Le serveur fournit certains en-têtes de réponse permettant le préchargement de ressources pendant que le reste de la réponse se charge.

Codes d’état HTTP 200

La requête a été acceptée, et le navigateur a reçu les informations.

  • 200 : Everything OK. La requête a été acceptée et est définie par la méthode HTTP utilisée, comme dans les exemples suivants :

GET : ressource obtenue et figurant dans le corps du message
HEAD : en-têtes dans le corps du message
POST ou PUT : ressource décrivant le résultat de l’action envoyée dans le corps du message
TRACE : le corps du message contient le message de la requête tel qu’il a été reçu

  • 201 : Created. Requête satisfaite ; nouvelle ressource créée. Réponse typique après une requête POST.
  • 202 : Accepted. Requête de navigation acceptée, toujours en cours. Peut ou non être acceptée.
  • 203 : Non-authoritative information. Les informations proviennent d’un serveur proxy qui a reçu un code d’état 200 'OK'.
  • 204 : No content. La requête a été traitée, mais aucun contenu n’a été envoyé. Les en-têtes peuvent être utiles.
  • 205 : Reset content. Comme le 204, mais indique à l’utilisateur de réinitialiser la vue du document.
  • 206 : Partial content. Si votre navigateur utilise des "en-têtes Range", ce code vous informe qu’une partie seulement de la ressource a été envoyée.
  • 226 : IM used. Le serveur a complété une requête GET ; la réponse reflète les manipulations de l’instance qui ont été appliquées.

Codes d’état HTTP 300

Indique qu’une ressource a été relocalisée. Ces codes fournissent des informations sur l’endroit où chercher le contenu déplacé.

  • 300 : Multiple choice. La requête a plus d’une réponse possible. Le navigateur/utilisateur doit en choisir une. 
  • 301 : Moved permanently. L’URL de la ressource demandée a été modifiée de façon permanente. La nouvelle URL est donnée dans la réponse.
  • 302 : Found. L’URL de la ressource demandée a été modifiée temporairement. D’autres modifications de l’URL pourraient être effectuées à l’avenir. Par conséquent, cette même URI doit être utilisée par le client dans les futures requêtes.
  • 303 : See other. Le serveur a envoyé cette réponse pour indiquer au client d’obtenir la ressource demandée à une autre URL avec une requête GET. Cela demande de connaître les quatre principales méthodes de requête HTTP.
  • 304 : Not modified. Utilisé à des fins de cache. Il indique au client que les ressources mises en cache n’ont pas changé. Le client peut continuer à utiliser la même version de la réponse mise en cache, ce qui accélère le processus.
  • 307 : Temporary redirect. Ce code remplace le code de réponse HTTP 302 Found utilisé lorsqu’une ressource a été temporairement déplacée vers une autre URL. Dans ce cas, la méthode HTTP utilisée ne doit pas être modifiée — si POST a été utilisé, il doit l’être à nouveau. 
  • 308 : Permanent redirect. Semblable à un code de réponse HTTP 301 ; la ressource est maintenant située de façon permanente à une autre URL, spécifiée dans l’en-tête de réponse HTTP Location:.

Codes d’état HTTP 400

Le site ou la page n’a pas pu être trouvé(e). La page n’est pas disponible ou la requête est problématique d’un point de vue technique.

  • 400 : Bad request. Le serveur ne peut pas répondre à cause d’une erreur du client.
  • 401 : Unauthorized. Le client doit s’authentifier afin d’obtenir la réponse demandée.
  • 402 : Payment required. Réservé pour une utilisation future ; rarement utilisé car aucune convention standard n’a été adoptée.
  • 403 : Forbidden. Le client ne dispose pas des droits d’accès au contenu ; par exemple, un mot de passe peut être nécessaire. 
  • 404 : Not found. Très courant sur le web. L’URL n’est pas reconnue ; la ressource n’existe pas.
  • 405 : Method not allowed. Le serveur hôte prend en charge la méthode reçue, mais la ressource cible ne le fait pas car elle a été désactivée. 
  • 406 : Not acceptable. La ressource demandée ne peut générer que du contenu inacceptable selon les en-têtes d'acceptation de la requête.
  • 407 : Proxy authentication required. Lorsque vous utilisez un serveur proxy, votre navigateur doit s’authentifier pour continuer.
  • 408 : Request timeout. Le serveur souhaite fermer une connexion inutilisée ; la requête n’a pas été entièrement satisfaite avant le délai d’attente. Certains serveurs n’envoient aucun message avant la déconnexion. 
  • 409 : Conflict. Votre requête entre en conflit avec l’état actuel de la ressource/serveur.
  • 410: Gone. Le contenu demandé a été définitivement supprimé du serveur et ne sera pas réintégré. 
  • 411 : Length required. La requête est rejetée car le champ d’en-tête « content length » n’est pas défini comme requis par le serveur.
  • 412 : Precondition failed. Les conditions de l’en-tête de requête de votre navigateur n’ont pas été remplies par le serveur.
  • 413 : Payload too large. Votre requête est plus grande que les limites définies par le serveur.
  • 414 : URI too long. La requête est trop longue pour que le serveur la traite.
  • 415 : Unsupported media type. Le serveur rejette la requête car il ne prend pas en charge le format média des données demandées. 
  • 416 : Range not satisfiable. Le serveur n’est pas en mesure de répondre à votre requête ; le champ d’en-tête Range tel qu’il a été spécifié peut dépasser la portée des données de l’URI.
  • 417 : Expectation failed. Le serveur ne peut pas répondre aux exigences du champ d’en-tête de requête Expect.
  • 421 : Misdirected request. Le serveur n’est pas configuré pour produire une réponse à cette demande.
  • 422 : Unprocessable entity. Les erreurs sémantiques dans la requête interdisent au serveur de traiter une réponse.
  • 423 : Locked. La ressource est verrouillée et il est impossible d’y accéder.
  • 424 : Failed dependency. La requête a échoué en raison de l’échec de la requête précédente.
  • 425 : Too early. Indique que le serveur ne veut pas traiter une requête qui risque d’être rejouée.
  • 426 : Upgrade required. Le serveur refuse la requête dans le cadre du protocole actuel ; il envoie un en-tête Upgrade indiquant un protocole acceptable.
  • 428 : Pre-condition required. Le serveur ne peut pas traiter la requête tant que les conditions ne sont pas spécifiées.
  • 429 : Too many requests. Il s’agit d’une réponse du serveur limitant le débit lorsque l’utilisateur a envoyé trop de demandes dans un laps de temps donné. 
  • 431 : Request header fields too large. Les champs d’en-tête de la requête sont trop grands pour que le serveur puisse les traiter.
  • 451 : Unavailable for legal reasons. Le serveur n’est pas autorisé à donner accès à la ressource demandée ; il peut s’agir d’une page web officiellement censurée. 

Relation entre les codes d’état HTTP et le SEO

Bon, vous avez réussi à endurer tout ça et vous êtes toujours avec nous. C’est signe que cela vous intéresse vraiment !

Même si toutes ces informations peuvent sembler arides à première vue, elles sont pourtant essentielles lorsqu’il s’agit de SEO ou de visibilité générale sur le web.

Chacun de ces codes d’état peut affecter le classement de votre site, certaines catégories étant beaucoup plus destructrices que d’autres.

Il est essentiel que vous entreteniez une relation solide avec vos développeurs web. Déterminez quels sont les codes d’erreur HTTP qui perturbent le plus votre visibilité et transmettez-les à votre équipe de maintenance du site.

Problèmes critiques liés aux robots d’exploration

Les problèmes critiques liés aux robots d’exploration peuvent constituer votre point de départ. Les erreurs d’état HTTP des niveaux 400 et 500 rendent vos pages entièrement invisibles pour les visiteurs de votre site. Les erreurs de niveau 400 (y compris la redoutable erreur 404 « page non trouvée ») indiquent que le contenu est introuvable ou a été entièrement supprimé. Les erreurs de niveau 500 indiquent des problèmes avec le serveur.

Les visiteurs ne restent pas longtemps sur votre site lorsqu’ils rencontrent des pages d’erreur de ce type. Vos concurrents en profiteront jusqu’à ce que vous régliez le problème. 

Vous ne pouvez tout simplement pas vous permettre que ces erreurs apparaissent sur vos pages principales.

Problèmes de redirection

Les problèmes de redirection ont un impact important sur l’expérience utilisateur et le SEO.

Les codes 302/307 redirigent temporairement les utilisateurs d’une URL vers une autre. Google ne joue pas le jeu et ne transmet pas autant d’équité de lien à la page.

Les chaînes de redirection sont également un obstacle pour Google, l’équité étant perdue à chaque nouvelle redirection dans une chaîne. Parfois, si la chaîne est trop longue, votre page n’apparaît plus du tout.

Les meta refresh dans le code HTML indiquent au serveur de rediriger l’utilisateur après un laps de temps. L’utilisateur quitte alors le site et, une fois de plus, aucune équité de lien n’est gagnée.

N’oubliez pas que la vitesse de chargement des pages est un facteur de classement ; plus le visiteur attend, plus la page perd en classement.

Les problèmes de redirection empêchent les robots d’explorer et d’indexer les pages, comme si elles n’existaient pas. Vous avez travaillé trop dur pour vous permettre d’ignorer ces problèmes, alors n’hésitez pas à demander à vos développeurs web de les résoudre de toute urgence.

Comment réparer les erreurs 404 ?

Une erreur 404 (ou une erreur "Page Not Found") peut être due à de nombreuses raisons. Quelles qu’elles soient, il s’agit d’une erreur côté client et non d’une erreur côté serveur. Pour lutter contre les erreurs 404, vous devez trouver la cause profonde de cette erreur. Posez-vous les questions suivantes :

  1. La structure de l’URL a-t-elle changé ? Si c’est le cas, redirigez l’ancienne structure de l’URL vers la nouvelle. Certains CMS comme Shopify et Wordpress ont une redirection automatique dès que vous changez la structure de l’URL.
codes d'état http

2. Rafraîchissez la page. Vous pouvez avoir tendance à paniquer lorsque vous voyez que votre page est inaccessible, mais parfois le simple fait de rafraîchir la page ou de l’ouvrir sur un autre appareil peut faire l’affaire.

3. Effacez votre cache et vos cookies : videz le cache du navigateur et supprimez les cookies, puis essayez à nouveau d’accéder à la page.

Comment corriger les erreurs de code d’état 503 ?

Contrairement aux erreurs 404, il s’agit d’erreurs côté serveur et vous ne pouvez pas toujours les corriger immédiatement. Tenez compte de ces trois facteurs lorsque vous traitez ce code d’état :

  1. Si un site web reçoit trop de trafic lorsque vous rencontrez cette erreur (assurez-vous d’abord qu’il s’agit d’un trafic réel et non d’un trafic de robots), alors il se peut que le plan d’hébergement actuel de votre site web ne puisse pas gérer cet afflux de trafic. La meilleure solution serait de contacter votre hébergeur et de mettre votre serveur à niveau.
  2. Si une page renvoie une erreur 503, il est possible que votre serveur soit en maintenance ou qu’il ait planté. Soyez patient ou contactez votre hébergeur pour avoir une idée de la date de remise en service du site.
  3. Déterminez s’il s’agit d’une attaque DoS ou DDoS.

Comment Semrush peut-il vous aider à résoudre les erreurs HTTP ?

Semrush permet de trouver facilement certains types de codes d’état HTTP grâce à son outil Audit de site. L’un des principaux avantages d’Audit de site est qu’il permet d’identifier très facilement les codes d’état HTTP : vous pouvez les repérer pour votre site web ou pour un client. Vous trouverez ci-dessous un processus étape par étape sur la façon de les trouver.

Étape 1 : Créez un compte avec Semrush.

Étape 2 : Connectez-vous à votre tableau de bord. Sélectionnez le menu déroulant SEO pour afficher les outils SEO : 

Semrush tableau de bord SEO

Étape 3 : Dans la catégorie "On Page & Tech SEO", sélectionnez Audit de site : 

Semrush menu On Page & Tech SEO

Étape 4 : Saisissez le domaine de votre site web et cliquez sur "Lancez l’audit" :

Semrush Audit de site page d'accueil

Étape 5 : Personnalisez votre audit en ajustant les différents onglets de réglage, puis lancez votre audit :

Semrush Audit de site Paramètres

Principaux points à retenir

Le HTTP peut sembler n’être qu’un "simple protocole", mais c’est bien plus que cela.

C’est un langage essentiel, et lorsque vous maîtrisez parfaitement ce langage, vous vous apercevez que vous êtes capable de comprendre rapidement les erreurs et les blocages qui se produisent sur vos sites.

Grâce à cette nouvelle compréhension, il deviendra facile et naturel d’effectuer les réparations nécessaires pour maintenir votre SEO en pleine forme (et votre chiffre d’affaires aussi).

Partager
Author Photo
En charge du développement marketing pour le marché Français et Francophone, de l’organisation des événements en ligne, des partenariats marketing/éducatifs, de la chaîne YouTube et du blog Semrush France.