Codes de statut HTTP
Une réponse HTTP commence par un code à trois chiffres et une courte phrase de raison. Le premier chiffre est le résumé complet : 1xx est provisoire, 2xx a réussi, 3xx pointe ailleurs, 4xx blâme la demande, 5xx blâme le serveur. Si vous vous souvenez seulement de cela, vous pouvez lire un journal que vous n'avez jamais vu avant.
Les phrases de raison ici sont celles des RFC, en anglais, parce que c'est ce qui circule sur le fil — un serveur envoie "Not Found", pas une traduction, et une phrase que vous grepez dans un journal doit correspondre aux octets qui ont été réellement envoyés.
Les distinctions qui causent des problèmes réels sont à l'intérieur des classes plutôt qu'entre elles : 401 versus 403, 301 versus 308, et 502 versus 503 chacun répond à une question différente sur ce qu'il faut faire ensuite, et chacun est routinièrement utilisé pour l'autre.
1xx — Informationnel
3Provisoire : la réponse n'est pas définitive et une autre suit.
| Code | Phrase de raison | Ce que cela signifie |
|---|---|---|
| 100 | Continue | En-têtes reçus, continuez à envoyer le corps. |
| 101 | Switching Protocols | Protocoles de commutation — la poignée de main WebSocket. |
| 103 | Early Hints | Premiers indices : préchargez ces ressources pendant que la véritable réponse est préparée. |
2xx — Succès
5La demande a été reçue, comprise et acceptée.
| Code | Phrase de raison | Ce que cela signifie |
|---|---|---|
| 200 | OK | Succès, avec un corps. |
| 201 | Created | Créé.Doit porter un en-tête Location pointant vers la nouvelle ressource. |
| 202 | Accepted | Accepté pour traitement, qui ne s'est pas encore produit. |
| 204 | No Content | Succès, et délibérément pas de corps.La bonne réponse à un DELETE, ou à un enregistrement qui n'a rien à renvoyer. |
| 206 | Partial Content | Contenu partiel — la réponse à une demande Range. Téléchargements reprennent. |
3xx — Redirection
6La ressource se trouve ailleurs, ou votre copie en cache est toujours bonne.
| Code | Phrase de raison | Ce que cela signifie |
|---|---|---|
| 301 | Moved Permanently | Déplacé de façon permanente. Mettez à jour vos liens ; les caches peuvent garder cela pour toujours. |
| 302 | Found | Trouvé — une redirection temporaire.Largement implémentée comme passage de la méthode à GET, ce que 307 corrige. |
| 303 | See Other | Voir l'autre : récupérez le résultat avec GET. La redirection après un POST de formulaire. |
| 304 | Not Modified | Non modifié — votre copie en cache est actuelle. Envoyé sans corps. |
| 307 | Temporary Redirect | Redirection temporaire, méthode et corps conservés. |
| 308 | Permanent Redirect | Redirection permanente, méthode et corps conservés. |
4xx — Erreur client
14La demande est le problème. La répéter sans changement échouera à nouveau.
| Code | Phrase de raison | Ce que cela signifie |
|---|---|---|
| 400 | Bad Request | Le serveur n'a pas pu analyser la demande du tout. |
| 401 | Unauthorized | Non authentifié — le serveur ne sait pas qui vous êtes.Nommé Unauthorized, mais cela signifie non authentifié. Doit inclure WWW-Authenticate. |
| 403 | Forbidden | Authentifiés et toujours pas autorisés. De meilleures identifiants n'aideront pas. |
| 404 | Not Found | Aucune ressource de ce type, et le serveur ne dira pas s'il y en a jamais eu une. |
| 405 | Method Not Allowed | Mauvaise méthode pour cette URL.Doit énumérer celles qui fonctionnent dans un en-tête Allow. |
| 406 | Not Acceptable | Rien disponible dans un format que votre en-tête Accept acceptera. |
| 409 | Conflict | Conflit avec l'état actuel — une modification par rapport à une version obsolète. |
| 410 | Gone | Disparu : il existait et a été délibérément supprimé. Plus fort que 404. |
| 413 | Content Too Large | Le corps est plus grand que le serveur n'accepte. |
| 415 | Unsupported Media Type | Le serveur ne traite pas ce Content-Type. |
| 418 | I'm a teapot | Je suis une théière. Une blague des poissons d'avril 1998, réservée à jamais. |
| 422 | Unprocessable Content | Analysé correctement, le contenu invalide — un champ manquant, une mauvaise valeur. |
| 429 | Too Many Requests | Limitée en débit.Recherchez Retry-After avant de relancer, et reculez exponentiellement. |
| 451 | Unavailable For Legal Reasons | Bloqué pour des raisons légales. Le numéro est un clin d'œil à Fahrenheit 451. |
5xx — Erreur serveur
6La demande peut être fine. Ce sont ceux qui valent la peine d'être relancés.
| Code | Phrase de raison | Ce que cela signifie |
|---|---|---|
| 500 | Internal Server Error | Une erreur non gérée sur le serveur. Rien à corriger de votre côté. |
| 501 | Not Implemented | Le serveur n'implémente pas cette méthode du tout. |
| 502 | Bad Gateway | Un proxy a atteint le serveur en amont et a obtenu quelque chose d'inutilisable. |
| 503 | Service Unavailable | Délibérément pas de service — surchargé ou en maintenance.Le statut qui devrait porter Retry-After. |
| 504 | Gateway Timeout | Un proxy a abandonné l'attente du serveur en amont. |
| 505 | HTTP Version Not Supported | La version HTTP dans la demande n'est pas prise en charge. |