Codes de statut HTTP
Tout se passe dans votre navigateur. Vos fichiers et vos données ne quittent jamais votre appareil.
| 1xxInformation | ||
|---|---|---|
| 100 | Continue | Le début de la requête a été reçu et le client doit continuer. |
| 101 | Switching Protocols | Le serveur accepte de changer de protocole comme demandé par le client. |
| 102 | Processing | Le serveur a reçu la requête et la traite, mais aucune réponse n'est encore disponible. |
| 103 | Early Hints | Utilisé pour renvoyer certains en-têtes de réponse avant le message HTTP final. |
| 2xxSuccès | ||
| 200 | OK | La requête a réussi. |
| 201 | Created | La requête a réussi et une nouvelle ressource a été créée en conséquence. |
| 202 | Accepted | La requête a été reçue mais n'a pas encore été traitée. |
| 203 | Non-Authoritative Information | Les métadonnées renvoyées ne sont pas exactement identiques à celles du serveur d'origine. |
| 204 | No Content | Le serveur a traité la requête mais n'a aucun contenu à renvoyer. |
| 205 | Reset Content | Le serveur demande au client de réinitialiser le document ayant envoyé cette requête. |
| 206 | Partial Content | Le serveur ne délivre qu'une partie de la ressource en raison d'un en-tête de plage envoyé par le client. |
| 207 | Multi-Status | Transmet des informations sur plusieurs ressources lorsque plusieurs codes de statut seraient appropriés. |
| 208 | Already Reported | Utilisé dans une réponse DAV pour éviter d'énumérer plusieurs fois les membres de plusieurs liaisons. |
| 226 | IM Used | Le serveur a traité une requête pour la ressource et la réponse est une représentation du résultat de manipulations d'instance. |
| 3xxRedirection | ||
| 300 | Multiple Choices | La requête admet plusieurs réponses possibles et le client doit en choisir une. |
| 301 | Moved Permanently | La ressource a été déplacée de façon permanente vers une nouvelle URL. |
| 302 | Found | La ressource se trouve temporairement à une URL différente. |
| 303 | See Other | La réponse se trouve à une URL différente et doit être récupérée avec GET. |
| 304 | Not Modified | La ressource n'a pas été modifiée depuis la version indiquée par les en-têtes de la requête. |
| 305 | Use Proxy | La ressource demandée doit être accédée via le proxy indiqué par le champ location. |
| 307 | Temporary Redirect | La ressource se trouve temporairement à une URL différente et la méthode ne doit pas changer. |
| 308 | Permanent Redirect | La ressource a été déplacée de façon permanente et la méthode ne doit pas changer. |
| 4xxErreur client | ||
| 400 | Bad Request | Le serveur ne peut pas traiter la requête en raison d'une erreur du client. |
| 401 | Unauthorized | Le client doit s'authentifier pour obtenir la réponse demandée. |
| 402 | Payment Required | Réservé pour un usage futur, initialement destiné aux systèmes de paiement numérique. |
| 403 | Forbidden | Le client n'a pas les droits d'accès au contenu. |
| 404 | Not Found | Le serveur ne trouve pas la ressource demandée. |
| 405 | Method Not Allowed | La méthode de la requête est connue du serveur mais n'est pas prise en charge par la ressource cible. |
| 406 | Not Acceptable | Le serveur ne peut pas produire de réponse correspondant à la liste des valeurs acceptables. |
| 407 | Proxy Authentication Required | Le client doit d'abord s'authentifier auprès du proxy. |
| 408 | Request Timeout | Le serveur a expiré en attendant la requête. |
| 409 | Conflict | La requête est en conflit avec l'état actuel de la ressource cible. |
| 410 | Gone | Le contenu demandé a été supprimé définitivement du serveur et ne reviendra pas. |
| 411 | Length Required | Le serveur refuse d'accepter la requête sans en-tête Content-Length défini. |
| 412 | Precondition Failed | L'une des conditions des en-têtes de la requête n'a pas été satisfaite. |
| 413 | Payload Too Large | L'entité de la requête dépasse les limites définies par le serveur. |
| 414 | URI Too Long | L'URI demandée par le client est plus longue que ce que le serveur est disposé à interpréter. |
| 415 | Unsupported Media Type | Le format multimédia des données demandées n'est pas pris en charge par le serveur. |
| 416 | Range Not Satisfiable | La plage spécifiée par l'en-tête Range ne peut pas être satisfaite. |
| 417 | Expectation Failed | L'attente indiquée dans l'en-tête Expect n'a pas pu être satisfaite. |
| 418 | I'm a Teapot | Le serveur refuse de préparer du café car il est, de façon permanente, une théière. |
| 419 | Page ExpiredNon officiel | Non standard. Laravel le renvoie quand le jeton CSRF envoyé avec un formulaire ne correspond pas à la session, le plus souvent parce que la session a expiré pendant que la page était ouverte. |
| 420 | Enhance Your CalmNon officiel | Non standard. L'ancienne API de recherche et de tendances de Twitter l'envoyait aux clients qui dépassaient la limite de requêtes ; le code standard pour cela est 429. Spring Framework définissait aussi 420 comme Method Failure, aujourd'hui obsolète. |
| 421 | Misdirected Request | La requête a été dirigée vers un serveur incapable de produire une réponse. |
| 422 | Unprocessable Content | La requête était bien formée mais n'a pas pu être traitée en raison d'erreurs sémantiques. |
| 423 | Locked | La ressource à laquelle on accède est verrouillée. |
| 424 | Failed Dependency | La requête a échoué car elle dépendait d'une autre requête qui a échoué. |
| 425 | Too Early | Le serveur ne veut pas prendre le risque de traiter une requête susceptible d'être rejouée. |
| 426 | Upgrade Required | Le serveur refuse d'exécuter la requête avec le protocole actuel. |
| 428 | Precondition Required | Le serveur d'origine exige que la requête soit conditionnelle. |
| 429 | Too Many Requests | Le client a envoyé trop de requêtes dans un laps de temps donné. |
| 431 | Request Header Fields Too Large | Le serveur refuse de traiter la requête car ses champs d'en-tête sont trop volumineux. |
| 444 | No ResponseNon officiel | Non standard. Un code nginx qui ferme la connexion sans envoyer de réponse ; il apparaît dans les journaux du serveur, jamais dans le navigateur. |
| 451 | Unavailable For Legal Reasons | La ressource demandée est indisponible en raison d'une exigence légale de refuser l'accès. |
| 499 | Client Closed RequestNon officiel | Non standard. nginx l'inscrit dans ses journaux quand le client ferme la connexion avant que le serveur ait fini de répondre. |
| 5xxErreur serveur | ||
| 500 | Internal Server Error | Le serveur a rencontré une situation qu'il ne sait pas gérer. |
| 501 | Not Implemented | La méthode de la requête n'est pas prise en charge par le serveur et ne peut pas être traitée. |
| 502 | Bad Gateway | Le serveur, agissant en tant que passerelle, a reçu une réponse invalide du serveur en amont. |
| 503 | Service Unavailable | Le serveur n'est pas prêt à traiter la requête, souvent en raison d'une maintenance ou d'une surcharge. |
| 504 | Gateway Timeout | Le serveur, agissant en tant que passerelle, n'a pas obtenu de réponse à temps. |
| 505 | HTTP Version Not Supported | La version HTTP utilisée dans la requête n'est pas prise en charge par le serveur. |
| 506 | Variant Also Negotiates | Le serveur présente une erreur de configuration interne dans la négociation de contenu transparente. |
| 507 | Insufficient Storage | Le serveur est incapable de stocker la représentation nécessaire pour compléter la requête. |
| 508 | Loop Detected | Le serveur a détecté une boucle infinie lors du traitement de la requête. |
| 510 | Not Extended | Des extensions supplémentaires de la requête sont nécessaires pour que le serveur puisse la satisfaire. |
| 511 | Network Authentication Required | Le client doit s'authentifier pour obtenir l'accès au réseau. |
| 599 | Network Connect Timeout ErrorNon officiel | Un code non standard utilisé par certains proxys pour signaler un délai de connexion réseau dépassé derrière le proxy. |
À propos de cet outil
Voici une liste de référence des codes de statut HTTP de 100 à 599, couvrant les cinq classes définies dans la RFC 9110 : informative, succès, redirection, erreur client et erreur serveur. Chaque code affiche son nom et une courte description, et le champ de recherche filtre la liste pendant la saisie, par numéro, nom ou description.
Que contient la liste ?
Tous les codes enregistrés sous la RFC 9110, plus quelques extras largement utilisés qui n’ont jamais intégré la spécification centrale mais reviennent sans cesse dans les API réelles : le 418 (la blague de la théière tirée de la RFC 2324), le 429 (trop de requêtes) et le 451 (indisponible pour raisons légales). Tapez « 404 », « not found » ou « gateway » et seules les lignes correspondantes restent affichées. Chaque ligne a aussi son propre lien : ajoutez #419 à l’adresse de la page pour arriver directement sur ce code.
Que veulent dire les codes non officiels comme 419 et 420 ?
Certains codes viennent d’un framework ou d’un serveur précis plutôt que d’une RFC. La liste les signale par la mention « Non officiel ». Le code HTTP 419 (Page Expired) vient de Laravel : il est renvoyé quand le jeton CSRF envoyé avec un formulaire ne correspond plus à la session, en général parce que la session a expiré pendant que la page restait ouverte. Le code erreur HTTP 420 (Enhance Your Calm) était la réponse de l’ancienne API de recherche et de tendances de Twitter aux clients qui envoyaient trop de requêtes. Le code standard pour ce cas est le 429. Spring Framework a aussi utilisé 420 pour Method Failure, désormais obsolète. Deux codes nginx complètent la liste : 444 ferme la connexion sans rien répondre, et 499 signifie que le client a raccroché avant la fin de la réponse. On les voit dans les journaux du serveur, jamais dans le navigateur. Reste le 599, que certains proxys utilisent pour un délai de connexion réseau dépassé.
Faut-il une connexion internet ?
Non. La liste est une donnée statique rendue directement dans la page, rien n’est récupéré sur un serveur ni au chargement ni pendant la recherche. La recherche est donc instantanée.
Dans quels cas s’en servir ?
C’est pratique quand vous déboguez une réponse d’API et que vous ne vous souvenez plus si 422 recouvre la même chose que 400, ou quand vous hésitez entre 301, 302 et 308 pour une redirection et voulez vous rappeler la différence. Elle sert aussi pour les codes plus rares, comme le 409 (conflit), le 416 (plage non satisfaisante), ou la nuance entre 502 (mauvaise passerelle) et 503 (service indisponible). Consultez la référence des codes de statut HTTP de MDN pour plus de détails sur chacun.
Les cinq classes donnent une première lecture rapide de n’importe quelle réponse, avant même de regarder le numéro exact. Un code qui commence par 2 signifie que la requête a réussi, 3 qu’il faut suivre une redirection, 4 que quelque chose clochait dans la requête elle-même, et 5 que c’est le serveur qui a échoué. C’est pour ça que serveurs, navigateurs et clients d’API se contentent souvent du premier chiffre. Pas besoin d’être développeur pour trouver ça utile non plus : beaucoup de pages d’erreur classiques n’affichent qu’un numéro brut, et cette liste le traduit en une phrase compréhensible.