Le protocole de communication informatique HTTP définit une liste de codes HTTP. Ces codes sont des numéros de 3 chiffres. La plupart des codes correspondent chacun à un type d'erreur, quelques-uns correspondent à un type de succès. Ces codes sont envoyés par le serveur HTTP au client HTTP afin de permettre à ce dernier de déterminer automatiquement si une requête a réussi, et sinon de connaître le type d'erreur.
Ces codes d'état ont été successivement définis par la RFC 1945[1], puis la RFC 2068[2], puis la RFC 2616[3], en même temps que d’autres codes d'état, non normalisés mais très utilisés sur le Web. En 2014, ils ont été finalement spécifiés par la RFC 7231[4].
Structure des codes
Le premier chiffre est utilisé pour spécifier une des cinq catégories de réponse (informations, succès, redirection, erreur client et erreur serveur).
Les codes les plus courants sont :
- 200 : succès de la requête ;
- 301 et 302 : redirection, respectivement permanente et temporaire ;
- 401 : utilisateur non authentifié ;
- 403 : accès refusé ;
- 404 : ressource non trouvée ;
- 500, 502 et 503 : erreurs serveur ;
- 504 : le serveur n'a pas répondu.
Certains codes ne sont pas encore utilisés, mais sont prévus pour une utilisation future. D'autres codes n'entraînent aucun affichage spécifique pour l’utilisateur, mais sont sous-entendus (par exemple, les codes 200 ou 304, jamais vus par le client car ils concernent la majorité des requêtes réussies).
Codes d'état
Les codes de la table ci-dessous marqués WebDAV ne sont pas spécifiés par le protocole HTTP mais par le protocole WebDAV qui est une extension de HTTP.
1xx - Information
Code | Message | Apparition | Signification |
---|---|---|---|
100 | Continue | Attente de la suite de la requête. | |
101 | Switching Protocols | Acceptation du changement de protocole. | |
102 | Processing | WebDAV RFC 2518[5],[6] | Traitement en cours (évite que le client dépasse le temps d’attente limite). |
103 | Early Hints | RFC 8297[7] | (Expérimental) Dans l'attente de la réponse définitive, le serveur renvoie des liens que le client peut commencer à télécharger. |
2xx - Succès
Code | Message | Apparition | Signification |
---|---|---|---|
200 | OK | RFC 1945[8] | Requête traitée avec succès. La réponse dépendra de la méthode de requête utilisée. |
201 | Created | RFC 1945[8] | Requête traitée avec succès et création d’un document. |
202 | Accepted | RFC 1945[8] | Requête traitée, mais sans garantie de résultat. |
203 | Non-Authoritative Information | Information renvoyée, mais générée par une source non certifiée. | |
204 | No Content | RFC 1945[8] | Requête traitée avec succès mais pas d’information à renvoyer. |
205 | Reset Content | RFC 2068[9] | Requête traitée avec succès, la page courante peut être effacée. |
206 | Partial Content | RFC 2068[9] | Une partie seulement de la ressource a été transmise. |
207 | Multi-Status | WebDAV | Réponse multiple. |
208 | Already Reported | WebDAV | Le document a été envoyé précédemment dans cette collection. |
210 | Content Different | WebDAV | La copie de la ressource côté client diffère de celle du serveur (contenu ou propriétés). |
226 | IM Used | RFC 3229[10] | Le serveur a accompli la requête pour la ressource, et la réponse est une représentation du résultat d'une ou plusieurs manipulations d'instances appliquées à l'instance actuelle. |
3xx - Redirection
Code | Message | Apparition | Signification |
---|---|---|---|
300 | Multiple Choices | RFC 1945[8] | L’URI demandée se rapporte à plusieurs ressources. |
301 | Moved Permanently | RFC 1945[8] | Document déplacé de façon permanente. |
302 | Found | RFC 1945[8] | Document déplacé de façon temporaire. |
303 | See Other | RFC 2068[9] | La réponse à cette requête est ailleurs. |
304 | Not Modified | RFC 1945[8] | Document non modifié depuis la dernière requête. |
305 | Use Proxy (depuis HTTP/1.1) | RFC 2068[9] | La requête doit être ré-adressée au proxy. |
306 | (inutilisé) | RFC 2616[11] | La RFC 2616[11] indique que ce code inutilisé est réservé, car il était utilisé dans une ancienne version de la spécification. Il signifiait « Les requêtes suivantes doivent utiliser le proxy spécifié »[12]. |
307 | Temporary Redirect | La requête doit être redirigée temporairement vers l’URI spécifiée sans changement de méthode[13]. | |
308 | Permanent Redirect | La requête doit être redirigée définitivement vers l’URI spécifiée sans changement de méthode[14]. | |
310 | Too many Redirects | La requête doit être redirigée de trop nombreuses fois, ou est victime d’une boucle de redirection. |
4xx - Erreur du client HTTP
Code | Message | Apparition | Signification |
---|---|---|---|
400 | Bad Request | RFC 1945[8] | La syntaxe de la requête est erronée. |
401 | Unauthorized | RFC 1945[8] | Une authentification est nécessaire pour accéder à la ressource. |
402 | Payment Required | RFC 2068[9] | Paiement requis pour accéder à la ressource. |
403 | Forbidden | RFC 1945[8] | Le serveur a compris la requête, mais refuse de l'exécuter. Contrairement à l'erreur 401, s'authentifier ne fera aucune différence. Sur les serveurs où l'authentification est requise, cela signifie généralement que l'authentification a été acceptée mais que les droits d'accès ne permettent pas au client d'accéder à la ressource. |
404 | Not Found | RFC 1945[8] | Ressource non trouvée. |
405 | Method Not Allowed | RFC 2068[9] | Méthode de requête non autorisée. |
406 | Not Acceptable | RFC 2068[9] | La ressource demandée n'est pas disponible dans un format qui respecterait les en-têtes « Accept » de la requête. |
407 | Proxy Authentication Required | RFC 2068[9] | Accès à la ressource autorisé par identification avec le proxy. |
408 | Request Time-out | RFC 2068[9] | Temps d’attente d’une requête du client, écoulé côté serveur. D'après les spécifications HTTP : « Le client n'a pas produit de requête dans le délai que le serveur était prêt à attendre. Le client PEUT répéter la demande sans modifications à tout moment ultérieur »[15]. |
409 | Conflict | RFC 2068[9] | La requête ne peut être traitée à la suite d'un conflit avec l'état actuel du serveur. |
410 | Gone | RFC 2068[9] | La ressource n'est plus disponible et aucune adresse de redirection n’est connue. |
411 | Length Required | RFC 2068[9] | La longueur de la requête n’a pas été précisée. |
412 | Precondition Failed | RFC 2068[9] | Préconditions envoyées par la requête non vérifiées. |
413 | Request Entity Too Large | RFC 2068[9] | Traitement abandonné dû à une requête trop importante. |
414 | Request-URI Too Long | RFC 2068[9] | URI trop longue. |
415 | Unsupported Media Type | RFC 2068[9] | Format de requête non supporté pour une méthode et une ressource données. |
416 | Requested range unsatisfiable | Champs d’en-tête de requête « range » incorrect. | |
417 | Expectation failed | Comportement attendu et défini dans l’en-tête de la requête insatisfaisante. | |
418 | I’m a teapot | RFC 2324[16] | « Je suis une théière » : Ce code est défini dans la RFC 2324[17] datée du , Hyper Text Coffee Pot Control Protocol. |
419 | Page expired | Ressource expirée | |
421 | Bad mapping / Misdirected Request | La requête a été envoyée à un serveur qui n'est pas capable de produire une réponse (par exemple, car une connexion a été réutilisée). | |
422 | Unprocessable entity | WebDAV | L’entité fournie avec la requête est incompréhensible ou incomplète. |
423 | Locked | WebDAV | L’opération ne peut avoir lieu car la ressource est verrouillée. |
424 | Method failure | WebDAV | Une méthode de la transaction a échoué. |
425 | Too Early | RFC 8470[18] | Le serveur ne peut traiter la demande car elle risque d'être rejouée. |
426 | Upgrade Required | RFC 2817[19] | Le client devrait changer de protocole, par exemple au profit de TLS/1.0. |
427 | Invalid digital signature | Microsoft | La signature numérique du document est non-valide. |
428 | Precondition Required | RFC 6585[20] | La requête doit être conditionnelle. |
429 | Too Many Requests | RFC 6585[20] | le client a émis trop de requêtes dans un délai donné. |
431 | Request Header Fields Too Large | RFC 6585[20] | Les entêtes HTTP émises dépassent la taille maximale admise par le serveur. |
449 | Retry With | Microsoft | La requête devrait être renvoyée après avoir effectué une action. |
450 | Blocked by Windows Parental Controls | Microsoft | Cette erreur est produite lorsque les outils de contrôle parental de Microsoft Windows sont activés et bloquent l’accès à la page. |
451 | Unavailable For Legal Reasons | RFC 7725[21] | La ressource demandée est inaccessible pour des raisons d'ordre légal. |
456 | Unrecoverable Error | Erreur irrécupérable. |
Code | Message | Apparition | Signification |
---|---|---|---|
444 | No Response | Nginx | Indique que le serveur n'a retourné aucune information vers le client et a fermé la connexion. |
495 | SSL Certificate Error | Nginx | Une extension de l'erreur 400 Bad Request, utilisée lorsque le client a fourni un certificat invalide. |
496 | SSL Certificate Required | Nginx | Une extension de l'erreur 400 Bad Request, utilisée lorsqu'un certificat client requis n'est pas fourni. |
497 | HTTP Request Sent to HTTPS Port | Nginx | Une extension de l'erreur 400 Bad Request, utilisée lorsque le client envoie une requête HTTP vers le port 443 normalement destiné aux requêtes HTTPS. |
498 | Token expired/invalid | Nginx | Le jeton a expiré ou est invalide. |
499 | Client Closed Request | Nginx | Le client a fermé la connexion avant de recevoir la réponse. Cette erreur se produit quand le traitement est trop long côté serveur[22]. |
5xx - Erreur du serveur / du serveur d'application
Code | Message | Apparition | Signification |
---|---|---|---|
500 | Internal Server Error | RFC 1945[8] | Erreur interne du serveur. |
501 | Not Implemented | RFC 1945[8] | Fonctionnalité réclamée non supportée par le serveur. |
502 | Bad Gateway ou Proxy Error | RFC 1945[8] | En agissant en tant que serveur proxy ou passerelle, le serveur a reçu une réponse invalide depuis le serveur distant. |
503 | Service Unavailable | RFC 1945[8] | Service temporairement indisponible ou en maintenance. |
504 | Gateway Time-out | RFC 2068[9] | Temps d’attente d’une réponse d’un serveur à un serveur intermédiaire écoulé. |
505 | HTTP Version not supported | RFC 2068[9] | Version HTTP non gérée par le serveur. |
506 | Variant Also Negotiates | RFC 2295[23] | Erreur de négociation. Transparent content negociation. |
507 | Insufficient storage | WebDAV | Espace insuffisant pour modifier les propriétés ou construire la collection. |
508 | Loop detected | WebDAV | Boucle dans une mise en relation de ressources (RFC 5842[24]). |
509 | Bandwidth Limit Exceeded | Utilisé par de nombreux serveurs pour indiquer un dépassement de quota. | |
510 | Not extended | RFC 2774[25] | La requête ne respecte pas la politique d'accès aux ressources HTTP étendues. |
511 | Network authentication required | RFC 6585[20] | Le client doit s'authentifier pour accéder au réseau. Utilisé par les portails captifs pour rediriger les clients vers la page d'authentification. |
Code | Message | Apparition | Signification |
---|---|---|---|
520 | Unknown Error | Cloudflare | Réponse générique lorsque le serveur d'origine retourne un résultat imprévu. |
521 | Web Server Is Down | Cloudflare | Le serveur a refusé la connexion depuis Cloudflare. |
522 | Connection Timed Out | Cloudflare | Cloudflare n'a pas eu de retour avec le serveur d'origine dans les temps. |
523 | Origin Is Unreachable | Cloudflare | Cloudflare n'a pas réussi à joindre le serveur d'origine. Cela peut se produire en cas d'échec de résolution de nom de serveur DNS. |
524 | A Timeout Occurred | Cloudflare | Cloudflare a établi une connexion TCP avec le serveur d'origine mais n'a pas reçu de réponse HTTP avant l'expiration du délai de connexion. |
525 | SSL Handshake Failed | Cloudflare | Cloudflare n'a pas pu négocier un SSL/TLS handshake avec le serveur d'origine. |
526 | Invalid SSL Certificate | Cloudflare | Cloudflare n'a pas pu valider le certificat SSL présenté par le serveur d'origine. |
527 | Railgun Error | Cloudflare | La requête a dépassé le délai de connexion ou a échoué après que la connexion WAN a été établie. |
Annexes
Articles connexes
- HTTP
- URL
- World Wide Web Consortium
- Lien rompu
- Hyper Text Coffee Pot Control Protocol
Notes et références
- ↑ (en) « Hypertext Transfer Protocol -- HTTP/1.0 », Request for comments no 1945,
- ↑ (en) « Hypertext Transfer Protocol -- HTTP/1.1 », Request for comments no 2068,
- ↑ (en) « Hypertext Transfer Protocol -- HTTP/1.1 », Request for comments no 2616,
- ↑ (en) « Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content », Request for comments no 7231,
- ↑ (en) Request for comments no 2518
- ↑ (en) Jensen, D. et Faizi, A., « HTTP Extensions for Distributed Authoring -- WEBDAV », sur tools.ietf.org (consulté le )
- ↑ (en) Request for comments no 8297
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 (en) Request for comments no 1945
- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 (en) Request for comments no 2068
- ↑ (en) Request for comments no 3229
- 1 2 (en) Request for comments no 2616
- ↑ (en) Josh Cohen, « HTTP/1.1 305 and 306 Response Codes », sur tools.ietf.org, (consulté le )
- ↑ (en) « RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content », sur datatracker.ietf.org (consulté le )
- ↑ « RFC 7538 - The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect) », sur datatracker.ietf.org (consulté le )
- ↑ « 408 », sur httpstatus.es (consulté le )
- ↑ (en) Request for comments no 2324
- ↑ (en) « Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) », Request for comments no 2324,
- ↑ (en) Request for comments no 8470
- ↑ (en) Request for comments no 2817
- 1 2 3 4 (en) Request for comments no 6585
- ↑ (en) Request for comments no 7725
- ↑ (en) « Re: Status Code 499 », sur Forum de Nginx (consulté le ).
- ↑ (en) Request for comments no 2295
- ↑ (en) Request for comments no 5842
- ↑ (en) Request for comments no 2774
Liens externes
- (en)developer.mozilla.org Documentation Mozilla Firefox
- http-statuscode.com Tous les codes d'état HTTP expliqués