Tous les codes de statut HTTP, leur sens, quand les envoyer et la RFC dont ils viennent
Fonctionne dans votre navigateur. Rien de ce que vous saisissez n'est envoyé nulle part.Un code de statut HTTP dit ce qui s'est passé en 3 chiffres. 404 signifie que la ressource n'a jamais été là, 410 qu'elle y était et a disparu pour de bon, et 301 la déplace définitivement. Chaque code est listé ici avec quand l'envoyer et la RFC qui le définit.
Cette page a été traduite automatiquement à partir de l'original anglais. Aucune personne n’a encore relu la traduction : c’est la version anglaise qui fait foi. Lire l'original en anglais
Tapez dans la zone de recherche un numéro, un nom ou ce que vous voulez dire, comme « rate limit ».
Réduisez la liste des Codes avec les boutons Afficher : Courants, Tous, ou une classe de 1xx à 5xx.
Sélectionnez un code pour lire son sens, quand l'utiliser, s'il peut être mis en cache et la RFC qui le définit.
Choisissez un langage sous « Envoyer ce code en » et appuyez sur Copier l'extrait pour récupérer le code qui le renvoie.
Cette référence des codes de statut HTTP liste tous les codes enregistrés de 100 à 511, plus les codes non enregistrés que renvoient nginx, Apache, Laravel et Cloudflare. Chaque entrée dit ce que le code signifie vraiment, quand l'envoyer, si un cache peut stocker la réponse sans en-têtes de cache, si une redirection change la méthode de la requête et quelle RFC le définit.
La recherche fonctionne de trois façons. Tapez un numéro comme 404, ou une classe comme 4xx, pour y aller directement. Tapez un nom comme « not found ». Ou décrivez ce que vous voulez exprimer, et la recherche par intention trouve le code : « login failed » donne 401, « rate limit » donne 429, « file too large » donne 413, « validation failed » donne 422.
Deux détails que la plupart des listes expliquent mal sont inclus ici. La mise en cache n'est pas un oui ou un non : la section 15.1 de la RFC 9110 nomme douze codes qu'un cache peut stocker sans aucun en-tête explicite, ce qui explique qu'un 404 accidentel puisse rester collé. Et les redirections diffèrent : 301 et 302 laissent un client transformer un POST en GET, 303 le fait toujours, tandis que 307 et 308 doivent répéter exactement la méthode et le corps.
Chaque code courant est accompagné d'un extrait à copier pour HTTP brut, Express, Fastify, FastAPI, Go et PHP, avec l'en-tête que ce code exige, comme WWW-Authenticate pour un 401 ou Allow pour un 405. Rien n'est envoyé nulle part ; tout le tableau est dans la page.
Utilisez 401 Unauthorized. Il signifie que le serveur ne sait pas qui vous êtes : une identification manquante, expirée ou erronée relève de ce code. N'utilisez 403 Forbidden que lorsque vous savez qui appelle et refusez quand même. La spécification exige un en-tête WWW-Authenticate pour chaque 401.
401 signifie non authentifié : envoyez des identifiants et réessayez. 403 signifie authentifié mais non autorisé : de meilleurs identifiants n'y changeront rien. Si révéler l'existence d'un enregistrement est déjà une fuite, certaines API répondent 404 au lieu de 403 pour qu'un attaquant n'apprenne rien.
La section 15.1 de la RFC 9110 liste 200, 203, 204, 206, 300, 301, 308, 404, 405, 410, 414 et 501 comme mis en cache de façon heuristique, et la RFC 7725 ajoute 451. Un cache peut les stocker sans en-tête Cache-Control ni Expires, d'où la persistance possible d'un 404 temporaire. Tous les autres codes demandent des en-têtes de cache explicites.
La spécification ne l'autorise pas, mais presque tous les navigateurs font exactement cela avec 301 et 302. Un 303 transforme toujours la requête suivante en GET. Si la méthode et le corps doivent survivre à la redirection, utilisez 307 pour un déplacement temporaire ou 308 pour un déplacement définitif.
418 I'm a Teapot vient de la RFC 2324, un poisson d'avril de 1998 sur un protocole de cafetière. Une proposition de 2017 visant à réutiliser le numéro a été retirée après des objections : il reste donc réservé dans le registre de l'IANA et ne doit jamais porter un vrai sens.
Non. 499 est un code de nginx, visible seulement dans les journaux, pour un client qui a raccroché, et 520 à 527 sont des codes de Cloudflare pour des problèmes entre la périphérie et votre serveur d'origine. Aucun n'est enregistré auprès de l'IANA. Ils figurent ici parce que vous les croiserez dans les journaux, chacun marqué du produit qui l'a inventé.
Toujours bloqué ? Poser une question sur Codes de statut HTTP et toute personne qui connaît la réponse peut répondre. Aucun compte nécessaire.