Code de statut HTTP


Un code de statut est une partie des réponses transmises par le serveur quand un client (ex : un navigateur) appelle une URL. Avec l’aide du code de statut, le serveur est en capacité de dire au client si la recherche a fonctionné ou si une erreur a été détectée.

Catégories de statuts[modifier]

Les codes à trois chiffres HTTP peuvent être ordonnés en différentes catégories, où le premier chiffre réfère chaque catégorie respective.

  • Les codes HTTP de la première classe représentent des informations sur le traitement de la requête. Elles incluent les codes 100 et 102.
  • Les codes HTTP de la deuxième classe signifient une opération réussie. Un des codes les plus récurrents est le code 200 OK.
  • Le code de la troisième catégorie représente la redirection. Il est transmis si la requête est disponible sous une adresse différente. Le traitement de la demande n’est cependant pas complet et requiert des actions supplémentaires de la part du client. Les codes les plus importants de cette catégorie sont, dans le respect d’un processus d’optimisation, les codes 301 et 302.
  • Les codes de la quatrième classe représentent les erreurs du client, c’est-à-dire les erreurs qui résultent d’une requête mal formulée par le client. Un bon exemple de cette catégorie est bien sûr le code de statut « 404 Not Found ».
  • La cinquième classe contient les erreurs du serveur. Ce sont des erreurs qui sont attribuées au serveur. Le code de statut "500 Internal Server Error" et le code "503 Service Unavailable" sont des exemples représentatifs de cette classe.
  • La neuvième classe recouvre à la fois les codes standards, comme les codes propriétaires qui peuvent être occultés dans certaines circonstances. Dans ce cas-là, l’erreur est attribuée au réseau et il est demandé au client de reformuler et de renvoyer sa requête. Les codes les plus courants de cette catégorie sont les 906 et 950.

600x400-HTTPStatusCode-fr-01.png

Vérifier ses codes de statut HTTP[modifier]

Normalement, le navigateur web n’affiche pas ces codes. Vous avez donc besoin d’utiliser des outils spéciaux pour les surveiller. Les extensions du navigateur peuvent vous y aider, comme par exemple "Live http-Headers", ou alors l’outil spécial en ligne "Web-Sniffer".

Code 1** - Information[modifier]

Code de statut 100[modifier]

Le code de statut 100 est renvoyé si le serveur a correctement exécuté la requête de son client et est dans l’attente de plus d’informations. Seulement après, la requête pourra être exécutée par le serveur.

Code de statut 102[modifier]

Ce code de statut de traitement est utilisé afin d’empêcher une expiration du temps durant la requête. Cela peut arriver si le serveur doit traiter une requête qui consomme beaucoup de temps.

Code de statut 2** - opération réussie[modifier]

Le code de statut 200 est renvoyé par le serveur si la donnée demandée par le client (ex : navigateur web) a été transmise comme voulue. Les conditions suivantes sont pour cela nécessaires :

  • Le serveur doit accepter la requête du client et
  • la ressource demandée doit exister sur le serveur.
  • De plus, le serveur doit être en capacité de transmettre la ressource au client.

Si ces conditions sont remplies, les données sont envoyées au client et le code de statut 200 est inclus dans la réponse. Le code de statut 200 est un des codes de statut qui apparaît le plus souvent car il représente un cas normal. Ce code de statut est transmis quand il n’y a pas de problème : ce devrait être la norme.

Code de statut 3** - redirection[modifier]

Code de statut 301[modifier]

Le code de statut 301 montre que la ressource souhaitée par le client n’est plus disponible sur l’adresse donnée mais qu’elle a été redirigée vers une autre adresse. L’adresse précédente de la ressource est donc invalide. La nouvelle adresse est transmises au client et lui permet de récupérer la ressource sur la nouvelle adresse.

La différence entre le code de statut 301 et le code de statut 302, qui sont très similaires, réside dans la définition du temps. L’ancienne adresse demeure valide si c’est un code de statut 302 qui est renvoyé, tandis que le code de statut 301 signifie que l’ancienne adresse n’est plus valide. Le code 301 redirige directement vers le link juice, ce qui n’est pas le cas du code 302.

Cas d’usage – changement d’URL

Dans le meilleur scénario, une structure URL demeure toujours telle quelle une fois qu’elle a été assignée. Cependant, s’il devient nécessaire de changer la structure URL d’une page ou d’en changer le domaine, il faut s’assurer que toutes les anciennes URLs redirigent vers la nouvelle. Cela s’applique particulièrement aux URLs qui ont acquis des liens externes au fil du temps. C’est possible en utilisant le code de statut 301. Dans ce cas, si l’URL qui n’existe plus est recherchée, le serveur transmettra le code de statut 301 et informera le client de la nouvelle URL. Selon les standards RFC, une URL absolue devrait être utilisée dans la redirection. Les redirections relatives ne sont par conséquent pas valides.

Utiliser le 301

Il existe différentes manières d’envoyer un code 301. Par exemple, en utilisant des applications PHP, un header correspondant peut être généré. Pour cela, le code PHP suivant doit être ajouté dans le vieux fichier.

<?php
Header( "[[HTTP]]/1.1 301 Moved Permanently" );
Header( "Location: http://www.new-url.com" );
?>

Il est cependant beaucoup plus pratique d’utiliser le code de statut 301 en ayant recours au fichier .htaccess. Cela requiert la possession d’un serveur Linux et d’un Apache mod-rewrite / module mod-rewrite. Les lignes suivantes peuvent être ajoutées dans le fichier .htaccess.

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc]

En utilisant le code de statut 301, il faut s’assurer que dans un cas de changement de domaine, toutes les pages sont redirigées de façon 1:1 vers les nouvelles sous-pages et non vers la page d’accueil. De plus, les cercles de routine ou longues chaînes de routine (routing loops ou long routing chains) doivent être évités. Le Googlebot déconnecte normalement au bout de la quatrième ou cinquième redirection.

Redirection des liens

Une redirection 301 redirige la plupart du link juice vers la nouvelle destination, mais pas la réputation de la page sur Google+ (signal social). Avant d’avoir déplacé le contenu, il faut d’abord vérifier si la redirection est réellement voulue.

Code de statut 302[modifier]

Les status codes 302 indique une redirection temporaire, ce qui signifie que les ressources se trouvent temporairement sur une autre adresse. En complément de ce code, le serveur renvoie aussi vers la nouvelle adresse de la ressource. Une des différences importantes du code de statut 301 est que l’adresse originale demeure valide. C’est aussi la raison pour laquelle les contenus qui sont accessibles de façon permanente sur la nouvelle adresse doivent être aussi indiqués sous le code de statut 301 et non pas 302. Le Googlebot continue en effet de rechercher et d’indexer la destination initiale même pendant la redirection temporaire. Il est aussi important de s’assurer qu’aucun link juice n’est obtenu avec le code de statut 302, mais plutôt avec le 301.

Code de statut 400 – Code de statut 4** - erreur du client[modifier]

Code de statut 404[modifier]

Le code de statut 404 Not Found est toujours renvoyé quand la ressource demandée n’existe pas ou plus (la plupart du temps une URL, mais cela peut aussi être une image ou un autre fichier). Avec le code 200 "OK" et le code 304 "Not Modified", il s’agit d’un des codes les plus courants.

Raisons du code de statut 404

Une ressource non-existante peut surgir lorsque :

  • La ressource a été déplacée vers une autre destination, mais aucun lien interne n’a été généré à la place.
  • La ressource a été déplacée vers une autre destination, ainsi que ses références externes et les liens internes. Cependant, ils n’ont pas été informés du déplacement et relaient donc toujours vers l’ancienne adresse. On les appelle traditionnellement les liens morts (dead links).
  • Le client a demandé une ressource qui n’a jamais existé en modifiant ou falsifiant une URL valide et existante dans la barre du navigateur. Cela arrive souvent avec les liens copiés.

Corriger l’erreur 404

On devrait toujours s’assurer que le nombre de codes 404 est maintenu le plus bas possible, car ni les utilisateurs, ni Google ne se réjouissent lorsqu’ils sont face à une page 404. On peut utiliser le Google Webmaster Tools (maintenant Google Search Console) avec la fonctionnalité "Statut -> Erreur d'exploration" pour évaluer régulièrement les pages 404 trouvées par Google. Toutes les informations à propos des liens internes et externes de l’URL peuvent aussi être aperçues sur cet outil. Il est donc possible de détecter et de modifier les pages 404 les plus importantes.

Erreurs Soft 404[modifier]

Les erreurs Soft 404 sont rencontrées sur les pages web qui ne fournissent ni le contenu demandé, ni ne retournent vers les codes 404 ou 410. Dans de tels cas, le webmaster ne fournit aucune page 404, et ce sera donc les codes 202 "OK" ou 302 "Found" qui seront générés lors de la visite de ces pages web.

Dans la pratique, il s’avère peu astucieux d’afficher des contenus qui ne correspondent pas à la recherche de l’utilisateur au lieu d’afficher une page d’erreur. Google recommande l’usage du code de statut 404 quand le contenu n’existe plus sur la page hôte. Pour une meilleure accessibilité, la page d’erreur peut être utilisée afin de persuader les utilisateurs de quand même rester le site web.

Des outils SEO courants, Google Search Console ou le Bing Webmaster Tools peuvent être utilisés pour analyser les erreurs Soft 404.

Code de statut 5** - erreur de serveur[modifier]

Code de statut 500[modifier]

Le code de statut 500 indique une erreur interne au serveur. La ressource demandée ne peut pas être transmise en raison d’une erreur dans le serveur. Ce n’est que peu descriptif, car il s’agit fondamentalement d’une erreur générique du code de statut HTTP qui recouvre toutes les erreurs inattendues du serveur. Le code de statut 500 est la plupart du temps transmis dans le cas d’entrées incorrectes dans le fichier .htaccess.

Code de statut 503[modifier]

Le code de statut 503 montre une indisponibilité temporaire du serveur. Plusieurs raisons peuvent en être à l’origine. Ce code peut être affiché lors de la maintenance ou lors de la surcharge du serveur. Un champ comme "essayer plus tard" dans l'en-tête peut être ajouté pour indiquer au client quand la requête peut être de nouveau envoyée. On doit cependant garder en tête qu’avec ce code, le serveur ne traite pas la requête même après avoir retrouvé ses capacités.

Code de statut 9** - statut codes propriétaires[modifier]

Code de statut 906[modifier]

Ce code est transmis lorsqu’une erreur est décelée au cours de la transmission de la requête du client au serveur. Il faut donc envoyer la demande une nouvelle fois.

Code de statut 950[modifier]

Le code 950 est renvoyé si une erreur est rencontrée dans l’interprétation d’une requête administrative de la part du client. Ici aussi, il faut, dans la plupart des cas, renvoyer la requête.

Signification des codes de statut pour l'optimisation du référencement[modifier]

Les codes de statut http jouent un rôle important dans l'optimisation du référencement. Une erreur 404 peut souvent indiquer un site mal entretenu. Si les utilisateurs reçoivent le code 404 lorsqu'ils accèdent à des URL, cela entraîne un taux de rebond plus élevé, ce qui représente un signal utilisateur négatif pour Google et les autres moteurs de recherche.

L'indication "404-not found" est en soi une procédure naturelle sur le web qui apparaît quand une page n'est plus disponible, par exemple à cause d'un transfert de domaine. Toutefois, un grand nombre d'erreurs 404 nuit au SEO car vous transmettez un code de statut qui ne correspond pas au contenu de la page. Dans le pire des cas, les erreurs Soft 404 peuvent conduire à l'exclusion d'une URL de l'index Google.

En outre, les redirections 301 sont également importantes pour le référencement, car elles permettent d'éviter les contenus dupliqués.

Liens web[modifier]