Référence des Codes de Statut HTTP

Une référence consultable de tous les codes de statut HTTP officiels — ce que signifie chacun et quand un serveur doit l'envoyer, selon la RFC 9110 et les RFC associées.

196 vues

Pourquoi les Codes de Statut Sont Groupés par Premier Chiffre

Chaque code de statut HTTP est un nombre à trois chiffres, et le premier chiffre seul indique à un client la catégorie générale de la réponse avant même qu'il ne lise le reste - un choix de conception intégré à HTTP depuis ses toutes premières spécifications et perpétué, formalisé aujourd'hui dans la RFC 9110, le document qui a consolidé et remplacé l'ancienne série RFC 7230-7235 pour définir la sémantique de HTTP indépendamment de toute version de protocole (HTTP/1.1, HTTP/2, HTTP/3 partagent tous les mêmes significations de codes de statut). 1xx (Informationnel) signifie que la requête a été reçue et comprise et que le traitement continue - ce sont des réponses provisoires qu'un client ne doit pas traiter comme définitives. 2xx (Succès) signifie que la requête a été reçue, comprise et acceptée. 3xx (Redirection) signifie qu'une action supplémentaire est nécessaire pour compléter la requête, typiquement récupérer une URL différente. 4xx (Erreur Client) signifie que la requête, telle qu'envoyée, contient un problème causé par le client - syntaxe incorrecte, authentification manquante, une ressource qui n'existe pas. 5xx (Erreur Serveur) signifie que la requête était apparemment valide mais que le serveur n'a pas réussi à la satisfaire. Ce système de premier chiffre signifie qu'un client qui ne reconnaît que le chiffre « 4 » et rien d'autre à propos d'un code spécifique sait quand même, correctement, que quelque chose dans sa propre requête doit être corrigé plutôt que réessayé à l'identique - ce comportement de repli est précisément la raison pour laquelle le standard l'impose.

Les deuxième et troisième chiffres subdivisent chaque classe en significations spécifiques et documentées, et un client est censé revenir au comportement de la classe générale pour tout code qu'il ne reconnaît pas spécifiquement - c'est pourquoi des codes obscurs ou plus récents comme 226 ou 508 restent sûrs à traiter approximativement correctement par des logiciels plus anciens même sans support explicite. Les codes ne sont pas non plus inventés librement : le registre complet est maintenu par l'IANA (l'Internet Assigned Numbers Authority) précisément pour que « 599 » ou « 250 » ne puissent pas signifier deux choses différentes sur deux serveurs différents - chaque code activement utilisé remonte à une RFC spécifique qui définit sa sémantique exacte, dont plusieurs étendent la spécification HTTP/1.1 originale pour des protocoles particuliers, le plus visible étant WebDAV (RFC 4918), d'où proviennent les codes 207, 208, 422, 423, 424 et 507/508 de cette page.

Deux Codes à Connaître Précisément : 404 contre 410

Deux des codes les plus souvent confondus sont 404 Not Found et 410 Gone, et la distinction n'est pas cosmétique - elle change le comportement d'un moteur de recherche et d'un navigateur. 404 est délibérément ambigu : le serveur n'a aucune information sur le fait que la ressource ait jamais existé à cette URL, si elle pourrait revenir, ou si l'URL a simplement été mal saisie. 410 est une déclaration délibérée et plus forte : la ressource existait à cette URL exacte et a été intentionnellement, définitivement supprimée, sans adresse de redirection - la RFC 9110 recommande explicitement 410 spécifiquement pour ce cas où « la condition est susceptible d'être permanente », où un 404 sous-estimerait la certitude. Les moteurs de recherche traitent cela différemment en pratique : une URL renvoyant des 404 répétés n'est généralement retirée de l'index qu'après avoir été explorée à nouveau plusieurs fois sur une période prolongée, au cas où elle reviendrait, tandis qu'un 410 signale une suppression intentionnelle et les moteurs de recherche agissent généralement plus rapidement, désindexant la page plus tôt car le serveur a explicitement garanti qu'elle ne reviendra pas. Utiliser correctement 410 lors du retrait permanent d'une page - plutôt que de recourir par défaut à 404 pour tout - est un petit mais réel levier de SEO technique.

  • 301 contre 302 contre 307 contre 308 : 301 et 308 signifient tous deux « déplacé de façon permanente », tandis que 302 et 307 signifient tous deux « déplacé temporairement » - la paire plus récente 307/308 a été introduite spécifiquement pour garantir que la méthode de requête et le corps sont préservés lors de la redirection (un POST reste un POST), car un comportement historique répandu des navigateurs convertissait silencieusement les redirections 301/302 en GET, ce qui cassait la resoumission de formulaires d'une manière que les nouveaux codes corrigent.
  • 401 contre 403 : 401 Unauthorized signifie techniquement « vous n'êtes pas authentifié - connectez-vous », malgré le nom trompeur ; 403 Forbidden signifie « vous êtes identifié, mais vous n'êtes pas autorisé à accéder à ceci », une distinction que de nombreuses API brouillent en pratique mais que la spécification maintient clairement séparée.
  • 429 Too Many Requests (RFC 6585) est la réponse standard de limitation de débit et est couramment associée à un en-tête Retry-After indiquant au client exactement combien de temps attendre avant de réessayer.
  • Les codes 1xx sont rarement vus directement car la plupart des bibliothèques clientes HTTP les gèrent de manière transparente avant même que votre code d'application ne voie une réponse - 100 Continue, par exemple, permet à un client de vérifier si un grand corps de requête vaut même la peine d'être envoyé avant de l'envoyer.

Questions fréquentes

Quelle est la différence réelle entre 404 et 410 ?

Les deux signifient que la ressource est introuvable, mais 404 laisse ambigu le fait qu'elle ait jamais existé ou puisse revenir, tandis que 410 est une déclaration délibérée que la ressource existait à cette URL et a été définitivement, intentionnellement supprimée. Les moteurs de recherche désindexent généralement une page en 410 plus vite qu'une page en 404, car le serveur a explicitement confirmé que la suppression est permanente.

Le 418 « I'm a Teapot » est-il un code de statut réel et utilisable ?

Il est né dans la RFC 2324, le « Hyper Text Coffee Pot Control Protocol » de 1998, une RFC blague du 1er avril. Il n'a jamais été destiné à être pris au sérieux, mais s'est révélé utile comme code de test distinctif et non ambigu, et la RFC 9110 le préserve formellement aujourd'hui avec une note explicite indiquant que son statut est optionnel et qu'il n'est pas censé être implémenté par de vrais serveurs.

Pourquoi les redirections 301 et 302 cassent-elles parfois les soumissions de formulaires ?

Historiquement, de nombreux navigateurs convertissaient silencieusement une requête POST redirigée en requête GET en suivant un 301 ou un 302, abandonnant le corps soumis. Les codes plus récents 307 (Temporary Redirect) et 308 (Permanent Redirect) ont été introduits spécifiquement pour garantir que la méthode HTTP originale et le corps de la requête sont préservés à travers la redirection.

Quelle est la différence entre 401 et 403 ?

401 Unauthorized signifie en réalité que le client ne s'est pas du tout authentifié - malgré le nom, il demande des identifiants. 403 Forbidden signifie que le client est identifié mais explicitement non autorisé à accéder à cette ressource spécifique. De nombreuses API du monde réel les utilisent de façon lâche ou interchangeable, mais la spécification maintient les significations distinctes.

D'où viennent les codes spécifiques à WebDAV comme 507 ou 423 ?

Ils sont définis dans la RFC 4918, la spécification WebDAV (Web Distributed Authoring and Versioning), qui étend le HTTP simple avec des opérations de gestion de fichiers à distance telles que verrouiller une ressource (423 Locked) ou signaler que le serveur n'a plus d'espace de stockage (507 Insufficient Storage). Ils restent partie du registre officiel IANA des codes de statut HTTP aux côtés des codes HTTP de base.

Commentaires

Pas encore de commentaires — soyez le premier à en écrire un !

Outils similaires