AdSense Placeholder
Slot: header_reference_page
Toute réponse HTTP commence par un code d'état à trois chiffres. Le premier chiffre est la classe ; les deux autres la précisent. Cette page liste les codes que vous rencontrerez le plus souvent. Pour tous les codes, avec recherche, utilisez le Recherche de Code de Statut HTTP.
| Code |
Nom |
Signification |
100 |
Continue |
Le client peut continuer à envoyer le corps de la requête |
101 |
Switching Protocols |
Passage à un autre protocole, comme WebSocket |
2xx Succès
| Code |
Nom |
Signification |
200 |
OK |
La requête a abouti et la réponse contient le résultat |
201 |
Created |
Une ressource a été créée (typique d'un POST) |
202 |
Accepted |
Acceptée pour traitement, pas encore terminée |
204 |
No Content |
Succès sans corps à renvoyer (typique d'un DELETE) |
206 |
Partial Content |
Seulement la plage d'octets demandée (téléchargements reprenables, vidéo) |
3xx Redirection
| Code |
Nom |
Signification |
301 |
Moved Permanently |
Déplacé définitivement : mettez à jour liens et favoris |
302 |
Found |
Temporairement ailleurs : continuez à utiliser l'URL d'origine |
303 |
See Other |
Faites un GET sur une autre URL (après un POST) |
304 |
Not Modified |
Non modifié : utilisez votre copie en cache |
307 |
Temporary Redirect |
Redirection temporaire qui conserve la méthode et le corps |
308 |
Permanent Redirect |
Redirection permanente qui conserve la méthode et le corps |
4xx Erreur du client
| Code |
Nom |
Signification |
400 |
Bad Request |
La requête est mal formée ou invalide |
401 |
Unauthorized |
Non authentifié : identifiants manquants ou incorrects |
403 |
Forbidden |
Authentifié mais non autorisé à le faire |
404 |
Not Found |
Rien n'existe à cette URL |
405 |
Method Not Allowed |
L'URL existe mais pas pour cette méthode |
406 |
Not Acceptable |
Impossible de produire une réponse acceptée par le client |
408 |
Request Timeout |
Le serveur a renoncé à attendre la requête |
409 |
Conflict |
En conflit avec l'état actuel (collision d'édition, doublon) |
410 |
Gone |
Disparu définitivement : plus fort que 404 |
413 |
Content Too Large |
Le corps de la requête est trop volumineux |
414 |
URI Too Long |
L'URL est trop longue |
415 |
Unsupported Media Type |
Le format du corps (Content-Type) n'est pas pris en charge |
416 |
Range Not Satisfiable |
La plage d'octets demandée ne peut pas être servie |
418 |
I'm a Teapot |
Le serveur est une théière (un poisson d'avril, RFC 2324) |
422 |
Unprocessable Content |
Bien formée mais sémantiquement invalide (courant dans les API) |
429 |
Too Many Requests |
Trop de requêtes : limitation de débit, voir Retry-After |
431 |
Request Header Fields Too Large |
Les en-têtes de la requête sont trop volumineux |
451 |
Unavailable For Legal Reasons |
Bloqué pour des raisons légales |
5xx Erreur du serveur
| Code |
Nom |
Signification |
500 |
Internal Server Error |
Une défaillance générique côté serveur |
501 |
Not Implemented |
Le serveur ne prend pas en charge cette fonction ou méthode |
502 |
Bad Gateway |
Une passerelle ou un proxy a reçu une mauvaise réponse en amont |
503 |
Service Unavailable |
Temporairement indisponible (surcharge, maintenance) |
504 |
Gateway Timeout |
Une passerelle ou un proxy a expiré en attendant l'amont |
505 |
HTTP Version Not Supported |
La version HTTP n'est pas prise en charge |
Paires faciles à confondre
- 401 ou 403.
401 signifie « je ne sais pas qui vous êtes » (connectez-vous, ou votre jeton est faux ou expiré). 403 signifie « je sais qui vous êtes, et la réponse est non ».
- 301, 302, 307 et 308. La paire permanente est
301 et 308 ; la paire temporaire est 302 et 307. Les plus récents 307 et 308 garantissent que la méthode et le corps sont répétés à l'identique, alors que de vieux clients peuvent transformer un POST en GET après un 301 ou 302.
- 404 ou 410. Les deux signifient « ce n'est pas ici ».
410 indique une suppression volontaire et définitive, ce qui aide les moteurs de recherche à oublier l'URL plus vite.
- 502, 503 et 504.
502 : le serveur en amont a répondu de travers. 503 : le service est en panne ou surchargé, volontairement ou non. 504 : le serveur en amont n'a pas répondu à temps.
- 400 ou 422.
400 concerne les requêtes que le serveur ne peut pas analyser ; 422 celles qu'il a bien analysées mais ne peut pas accepter, comme un JSON valide contenant une adresse e-mail invalide.
Choisir un code pour une API
- Renvoyez
200 avec un corps pour les lectures et mises à jour, 201 avec un en-tête Location pour les créations et 204 quand il n'y a rien à renvoyer.
- Utilisez
404 pour une ressource absente et 409 pour un conflit, pas 400 pour tout.
- Utilisez
401 seulement avec un défi d'authentification, et 403 pour les problèmes de droits.
- Ajoutez
Retry-After à 429 et 503 pour que les clients sachent quand réessayer.
- Ne cachez pas les erreurs derrière un
200 : outils de supervision, caches et clients s'appuient sur le code d'état.
À lire aussi : HTTP, Redirection, Limitation de débit (rate limiting) et Aide-mémoire des en-têtes HTTP.