Chaque développeur garde une liste restreinte mentale de codes d'état HTTP La mienne était 200, 404 et 500, et pendant longtemps, cela a suffi à simuler la compétence Puis j'ai passé une semaine à construire une intégration de paiement où l'API a retourné 402 pour une carte refusée, 409 quand j'ai rejugé une charge qui avait déjà traversé, et 429 quand mes tests l'ont martelée trop vite Tout à coup la différence entre les codes était la différence entre une fonction de travail et un ticket de support Je construis beaucoup d'outils web pour Toolz.dev« Et une référence de code d'état consultable est l'une de ces choses que j'atteins constamment, alors j'en ai intégré une sur le site et j'ai écrit ce guide pour l'accompagner ».
tl;dr : Un code d'état HTTP est un numéro à trois chiffres qu'un serveur renvoie pour décrire le résultat d'une requête Le premier chiffre définit la classe : 1xx informationnel, 2xx succès, redirection 3xx, erreur client 4xx, erreur serveur 5xx Regardez n'importe lequel d'entre eux instantanément avec le Outil Codes d'état HTTP(, qui vous permet de rechercher par numéro, nom ou mot-clé et cite la RFC qui définit chacun.
Ce guide parcourt ce que sont les codes d'état, ce que chaque classe signifie, les codes spécifiques qui méritent d'être mémorisés et ceux que les gens se trompent le plus souvent. Il s'adresse aux développeurs front-end déboguant les appels d'API, aux développeurs back-end décidant quoi retourner et à toute personne effectuant un référencement technique qui a besoin de redirections pour se comporter.
Qu'est-ce qu'un code d'état HTTP ?
Chaque fois que votre navigateur ou une application demande quelque chose sur le Web, le serveur répond par une réponse La première ligne de cette réponse contient un code d'état : un numéro à trois chiffres, associé à une courte phrase de raison comme " ; OK" ; ou " ; Not Found" ;. Le code est le résumé lisible par machine de ce qui s'est passé, et la phrase de raison est l'étiquette conviviale Les clients agissent sur le numéro ; la phrase est pour les personnes lisant des journaux.
Les codes d'état sont définis par l'Internet Engineering Task Force, principalement dans la RFC 9110, qui a consolidé les anciennes spécifications HTTP en 2022. Un registre central géré par l'IANA répertorie tous les codes officiellement reconnus. Cette normalisation est ce qui permet à un navigateur écrit par une entreprise de parler à un serveur écrit par une autre et de se mettre d'accord sur ce que signifie un 404. Le Outil Codes d'état HTTP reflète ce registre, répertoriant chaque code standard avec sa signification et la RFC qui le définit.
Le modèle mental clé est que le premier chiffre vous indique la catégorie, et la catégorie vous indique qui est responsable Un code 4 x x signifie que le client a envoyé quelque chose de mal Un code 5 x x signifie que le serveur a échoué sur une requête qui était bien Cette seule distinction résout la plupart des arguments de débogage sur le bug de qui il s'agit.
Que signifient les cinq classes de code d'état ?
Il y a exactement cinq classes, regroupées par chiffre principal Comprendre la classe a plus de valeur que mémoriser des codes individuels, car cela vous indique où chercher.
La classe 1xx est informative Ces codes signalent que le serveur a reçu la requête et le traitement continue Ils sont rares dans le travail quotidien Le plus connu est 100 Continue, et le plus utile moderne est 103 Early Hints, qui permet à un serveur de dire au navigateur de commencer à précharger les ressources avant que la réponse complète ne soit prête.
La classe 2xx signifie succès La demande a été reçue, comprise et acceptée.200 OK est le code de réussite quotidien, 201 Created confirme qu'une nouvelle ressource a été créée, et 204 No Content dit " ; fait, rien à renvoyer" ;, ce qui est courant pour les opérations de suppression.
La classe 3 x x est redirection La ressource vit ailleurs, ou n'a pas changé depuis la dernière fois que le client l'a vue Cette classe est celle où vit le référencement, car 301 et 302 indiquent aux moteurs de recherche si un déplacement est permanent.304 Not Modified est un cheval de bataille de mise en cache qui permet d'économiser une bande passante énorme.
La classe 4xx est une erreur client La requête a été mal formée, non autorisée ou pointée vers quelque chose qui n'existe pas. 400, 401, 403, 404 et 429 sont tous en direct ici. Lorsque vous voyez un 4xx, vérifiez quel est votre code envoyé avant de blâmer le serveur.
La classe 5xx est une erreur de serveur La requête était valide mais le serveur n'a pas pu la remplir. 500, 502, 503 et 504 sont ceux que vous rencontrerez lors d'incidents de production, pointant généralement vers un crash, un service surchargé ou une dépendance en amont cassée.
Quels codes d'état HTTP tout développeur doit-il connaître ?
Vous n'avez pas besoin de tous les codes de soixante-plus dans votre tête Il vous en faut peut-être quinze, et le reste vous levez les yeux Voici le set de travail qui, je pense, gagne une place permanente dans la mémoire, avec les situations qui les déclenchent.
| Code | éloquent | Quand tu le vois |
|---|---|---|
| 200 | OK | Une demande normale réussie |
| 201 | Créé | Un POST ou un PUT a créé une nouvelle ressource |
| 204 | Aucun Contenu | Succès avec un corps vide, fréquent après DELETE |
| 301 | Déplacé Permanent | Une URL déplacée pour de bon ; Transferts de classement SEO |
| 302 | Trouvé | Une redirection temporaire ; continuez à utiliser l'ancienne URL |
| 304 | Non modifié | La copie mise en cache est toujours valide ; aucun corps envoyé |
| 400 | Mauvaise Demande | Syntaxe mal formée ou cadrage de requête non valide |
| 401 | Non autorisé | Authentification manquante ou échouée |
| 403 | Interdit | Authentifié mais non autorisé |
| 404 | Non Trouvé | La ressource n'existe pas |
| 409 | Conflit | La demande se heurte à l'état actuel |
| 422 | Contenu non traité | Syntaxe valide, règles de validation échouées |
| 429 | Trop de Demandes | Taux limité ; reculez et réessayez |
| 500 | Erreur interne du serveur | Panne inattendue du serveur |
| 503 | Service Indisponible | Serveur surchargé ou en maintenance |
Le reste du registre, de 226 IM Utilisé à 451 Indisponible Pour des raisons juridiques, vaut la peine d'être reconnu mais pas mémorisé C'est exactement à cela que sert un outil de recherche.
Quelle est la différence entre 401 et 403 ?
Cette paire trébuche presque tout le monde, elle mérite donc sa propre section Les deux moyens d'accès ont été refusés, mais pour des raisons différentes, et la différence change la façon dont votre application devrait réagir.
Un 401 Non autorisé signifie que la requête manque d'authentification valide Le serveur ne sait pas qui vous êtes Soit vous n'avez envoyé aucune identification, soit celles que vous avez envoyées étaient erronées ou expirées La bonne réponse de votre côté est de vous connecter ou d'actualiser le jeton Par spécification, une réponse 401 devrait inclure un en-tête WWW-Authenticate indiquant au client comment s'authentifier.
Un 403 Interdit signifie que le serveur sait exactement qui vous êtes et refuse de toute façon Vous êtes authentifié mais pas autorisé pour cette ressource particulière Une nouvelle connexion ne vous aidera pas, car le problème est les autorisations, pas l'identité Un utilisateur régulier qui frappe un point de terminaison uniquement administrateur devrait obtenir un 403.
La règle rapide que j'utilise : 401 est " ; qui êtes-vous ?" ;, 403 est " ; Je sais qui vous êtes, et non" ; Si vous construisez une API et souhaitez générer les en-têtes Autorisation pour tester ces flux, le Générateur d'authentification de base produit les informations d'identification codées dont vous avez besoin.
Pourquoi les redirections 301 contre 302 sont-elles importantes pour le référencement ?
Les redirections sont l'endroit où les codes d'état cessent d'être un détail d'implémentation interne et commencent à affecter votre classement de recherche Lorsque vous déplacez une page, le code d'état que vous renvoyez indique aux moteurs de recherche quoi faire avec l'ancienne URL' ; s autorité accumulée.
Un 301 Moved Signale en permanence que le déménagement est définitif Les moteurs de recherche déposent l'ancienne URL de leur index au fil du temps, transmettent les signaux de classement à la nouvelle URL et mettent à jour leurs liens C'est le code que vous souhaitez lorsque vous renommez une page, migrez vers HTTPS ou consolidez des URL en double. L'utiliser correctement est l'un des correctifs les plus courants dans un audit SEO technique.
Un 302 Found signale un déplacement temporaire Les moteurs de recherche gardent l'URL d'origine indexée car vous leur avez dit que le changement n'est pas permanent Si vous utilisez un 302 pour un déplacement qui est permanent, vous pouvez bloquer votre classement sur une URL que vous n'utilisez plus J'ai vu des sites perdre de la visibilité pendant des mois car un framework est passé par défaut à 302 redirections lors d'une migration HTTPS.
Il existe également 307 Temporary Redirect et 308 Permanent Redirect, qui se comportent comme 302 et 301 mais garantissent la préservation de la méthode et du corps HTTP Utilisez 307 et 308 pour les requêtes non GET où changer la méthode briserait les choses Si vous vérifiez comment les robots d'exploration voient votre site, associez ces connaissances avec le Générateur robots.txt et le Générateur de balises pour vous assurer que l'ensemble de l'image d'exploration et de redirection est cohérent. Le Boîte à outils pour les développeurs Web guide lie ces pièces ensemble.
Quels sont les codes d'erreur de serveur les plus courants et comment les déboguer ?
La classe 5 xx est l'endroit où vivent les incidents de production, et chaque code vous pointe vers une couche différente de la pile Savoir ce qui permet d'économiser du temps réel lors d'une panne.
Une erreur de serveur interne 500 est le fourre-tout générique Cela signifie que votre code d'application a lancé une exception non gérée ou atteint une condition qu'il ne pouvait pas traiter Le correctif est presque toujours dans vos propres journaux Un 500 est le serveur disant " ; quelque chose s'est cassé et je n'ai pas de meilleur mot pour ça" ;, donc le code vous indique où chercher mais pas ce qui a mal tourné.
Une passerelle 502 Bad Gateway et un délai d'attente 504 Gateway proviennent tous deux d'un serveur agissant comme passerelle ou proxy, tel qu'un équilibreur de charge ou un proxy inverse devant votre application Un 502 signifie que l'amont a renvoyé quelque chose d'invalide, souvent parce que votre application est plantée ou n'est pas en cours d'exécution Un 504 signifie que l'amont a mis trop de temps à répondre et que la passerelle a renoncé à attendre Si vous courez derrière Nginx, un CDN ou un équilibreur de charge cloud, ce sont les codes que vous verrez lorsque la chose derrière le proxy est malsaine.
Un service 503 Indisponible signifie que le serveur est temporairement incapable de gérer la demande, généralement parce qu'il est surchargé ou en maintenance. Les réponses 503 bien comportées incluent un en-tête Retry-After indiquant aux clients quand revenir L'envoi d'un 503 lors de la maintenance planifiée est le moyen correct et sécurisé pour supprimer brièvement un site, car il indique aux moteurs de recherche de revenir plus tard plutôt que de supposer que les pages ont disparu. Pour un examen plus large du diagnostic des problèmes Web, le Outils de productivité des développeurs le guide couvre la boîte à outils plus large.
Qu'en est-il des codes de statut les moins courants ?
Au-delà de l'ensemble de travail, le registre contient une longue queue de codes que vous rencontrerez occasionnellement, et les reconnaître permet d'économiser une demi-heure confuse. Quelques-uns valent la peine d’être visités rapidement.
Dans la famille 2xx, 206 Partial Content alimente les téléchargements et le streaming vidéo resumables Lorsqu'un client envoie un en-tête Range demandant les octets 500 à 999 d'un fichier, le serveur répond 206 avec juste cette tranche C'est ainsi qu'un téléchargement en pause reprend au lieu de recommencer, et comment un navigateur cherche au milieu d'une vidéo sans récupérer le tout en premier.
Dans la famille 4xx, 410 Gone est une version plus forte et plus délibérée de 404. où 404 dit " ; je ne pouvais pas le trouver" ;, 410 dit " ; c'était ici, il est définitivement parti, arrêtez de demander" ;. Utiliser 410 pour le contenu que vous avez intentionnellement supprimé aide les moteurs de recherche à le laisser tomber plus rapidement qu'un 404. Un autre utile est 451 Indisponible Pour des raisons juridiques, dont le numéro est un clin d'œil au roman Fahrenheit 451, renvoyé lorsque le contenu est bloqué par une ordonnance légale telle qu'un retrait ou une injonction judiciaire.
Il y a aussi 418 I' ; m a Teapot, un véritable code enregistré d'une spécification du poisson d'avril 1998 qu'une théière retourne lorsqu'on lui demande de brasser du café Elle n'est pas utilisée pour le trafic normal, mais elle apparaît comme un œuf de Pâques dans certaines API, et c'est un petit rappel que les personnes qui ont écrit ces normes avaient le sens de l'humour L'outil répertorie tout cela afin que vous puissiez rechercher tout ce que vous tombez sans deviner.
Comment l'outil Codes d'état HTTP aide-t-il ?
L'outil est délibérément simple, car le travail est simple : vous avez un code ou un symptôme, et vous voulez le sens rapidement Vous pouvez rechercher par le numéro, par la phrase de raison comme " ; not found" ;, ou par un mot-clé de la description comme " ;redirect" ; ou " ;rate limit" ;. Vous pouvez filtrer vers une seule classe pour parcourir uniquement les redirections ou uniquement les erreurs du serveur Chaque entrée affiche la phrase de raison, une explication simple du moment où le code s'applique et la RFC qui le définit, afin que vous puissiez confirmer le comportement contre la source principale.
Parce que l'intégralité du registre se charge dans votre navigateur, la recherche est instantanée et fonctionne hors ligne une fois la page ouverte Rien de ce que vous recherchez n'est envoyé n'importe où C'est le genre de référence que je garde épinglée dans un onglet pendant la construction d'une API, juste à côté de la Agent utilisateur Analyser pour inspecter les en-têtes de demande.
Questions fréquentes
Quelles sont les cinq classes de codes d'état HTTP ?
Les codes d'état HTTP sont regroupés par leur premier chiffre : informationnel 1 xx, succès 2 xx, redirection 3 xx, erreur client 4 xx et erreur serveur 5 xx La classe vous indique en un coup d'œil si une requête a réussi, a été redirigée ou a échoué du côté client ou serveur, ce qui est généralement suffisant pour savoir où commencer le débogage.
Que signifie un code d'état 404 ?
Un 404 Not Found signifie que le serveur n'a pas pu trouver la ressource demandée L'URL peut être mal orthographiée, la page peut avoir été supprimée ou le lien peut être rompu Il s'agit d'un code d'erreur client, donc la requête est parvenue au serveur mais pointée vers quelque chose qui n'existe pas là-bas.
Quelle est la différence entre une redirection 301 et une 302 ?
Un 301 Moved indique en permanence aux clients et aux moteurs de recherche que la ressource a déménagé pour de bon, ils mettent donc à jour leurs liens et transfèrent les signaux de classement vers la nouvelle URL. Un 302 Found est une redirection temporaire, l'URL d'origine doit donc continuer à être utilisée pour les demandes futures et les moteurs de recherche la maintiennent indexée.
Que signifie une erreur de serveur interne 500 ?
Une erreur de serveur interne 500 est un message générique signifiant que le serveur a atteint une condition inattendue qu'il ne pouvait pas gérer Il signale un problème sur le serveur plutôt que la requête, donc le correctif est généralement dans le code d'application ou la configuration, et vos propres journaux de serveur sont l'endroit où chercher.
Quand une API doit-elle renvoyer 400 contre 422 ?
Renvoie 400 Bad Request lorsque la requête elle-même est mal formée, comme un JSON non valide ou un en-tête requis manquant Renvoie 422 Contenu non traitable lorsque la syntaxe est valide mais que les données échouent aux règles commerciales ou de validation, comme un e-mail déjà pris ou une valeur hors de portée.
Qu'est-ce qu'un code 429 Trop de demandes ?
Un 429 trop de demandes signifie que le client a envoyé trop de demandes en peu de temps et est limité en termes de taux. La réponse comprend souvent un en-tête Retry-After indiquant au client combien de temps attendre avant de réessayer, et les clients bien élevés l'honorent avec un backoff exponentiel.
La référence du code d'état HTTP est-elle libre d'utilisation ?
Oui. L'outil est entièrement gratuit sans inscription ni limite, et il fonctionne hors ligne une fois la page chargée car la liste entière s'exécute dans votre navigateur Rien de ce que vous recherchez n'est envoyé à un serveur, il est donc sûr et rapide à utiliser lors du débogage.



