Liste des codes HTTP
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 permettent aux logiciels client HTTP 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 et 503 : erreur 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 | 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 retourne des liens que le client peut commencer à télécharger. |
2xx - Succès
Code | Message | Signification |
---|---|---|
200 | OK | Requête traitée avec succès. La réponse dépendra de la méthode de requête utilisée. |
201 | Created | Requête traitée avec succès et création d’un document. |
202 | Accepted | Requête traitée, mais sans garantie de résultat. |
203 | Non-Authoritative Information | Information retournée, mais générée par une source non certifiée. |
204 | No Content | Requête traitée avec succès mais pas d’information à renvoyer. |
205 | Reset Content | Requête traitée avec succès, la page courante peut être effacée. |
206 | Partial Content | 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[8] : 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 | Signification |
---|---|---|
300 | Multiple Choices | L’URI demandée se rapporte à plusieurs ressources. |
301 | Moved Permanently | Document déplacé de façon permanente. |
302 | Found | Document déplacé de façon temporaire. |
303 | See Other | La réponse à cette requête est ailleurs. |
304 | Not Modified | Document non modifié depuis la dernière requête. |
305 | Use Proxy (depuis HTTP/1.1) | La requête doit être ré-adressée au proxy. |
306 | Switch Proxy | Code utilisé par une ancienne version de la RFC 2616[9], à présent réservé. Elle signifiait « Les requêtes suivantes doivent utiliser le proxy spécifié »[10]. |
307 | Temporary Redirect | La requête doit être redirigée temporairement vers l’URI spécifiée sans changement de méthode[11]. |
308 | Permanent Redirect | La requête doit être redirigée définitivement vers l’URI spécifiée sans changement de méthode[12]. |
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 | Signification |
---|---|---|
400 | Bad Request | La syntaxe de la requête est erronée. |
401 | Unauthorized | Une authentification est nécessaire pour accéder à la ressource. |
402 | Payment Required | Paiement requis pour accéder à la ressource. |
403 | Forbidden | 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 | Ressource non trouvée. |
405 | Method Not Allowed | Méthode de requête non autorisée. |
406 | Not Acceptable | 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 | Accès à la ressource autorisé par identification avec le proxy. |
408 | Request Time-out | 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 »[13]. |
409 | Conflict | La requête ne peut être traitée en l’état actuel. |
410 | Gone | La ressource n'est plus disponible et aucune adresse de redirection n’est connue. |
411 | Length Required | La longueur de la requête n’a pas été précisée. |
412 | Precondition Failed | Préconditions envoyées par la requête non vérifiées. |
413 | Request Entity Too Large | Traitement abandonné dû à une requête trop importante. |
414 | Request-URI Too Long | URI trop longue. |
415 | Unsupported Media Type | 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 | « Je suis une théière » : Ce code est défini dans la RFC 2324[14] datée du , Hyper Text Coffee Pot Control Protocol. |
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[15] : le serveur ne peut traiter la demande car elle risque d'être rejouée. |
426 | Upgrade Required | RFC 2817[16] : Le client devrait changer de protocole, par exemple au profit de TLS/1.0. |
428 | Precondition Required | RFC 6585[17] : La requête doit être conditionnelle. |
429 | Too Many Requests | RFC 6585[18] : le client a émis trop de requêtes dans un délai donné. |
431 | Request Header Fields Too Large | RFC 6585[18] : Les entêtes HTTP émises dépassent la taille maximale admise par le serveur. |
449 | Retry With | Code défini par Microsoft. La requête devrait être renvoyée après avoir effectué une action. |
450 | Blocked by Windows Parental Controls | Code défini par Microsoft. Cette erreur est produite lorsque les outils de contrôle parental de Windows sont activés et bloquent l’accès à la page. |
451 | Unavailable For Legal Reasons | Ce code d'erreur indique que la ressource demandée est inaccessible pour des raisons d'ordre légal[19],[20]. |
456 | Unrecoverable Error | WebDAV : Erreur irrécupérable. |
Code | Message | Signification |
---|---|---|
444 | No Response | Indique que le serveur n'a retourné aucune information vers le client et a fermé la connexion. Visible seulement dans les journaux du serveur Nginx. |
495 | SSL Certificate Error | Une extension de l'erreur 400 Bad Request, utilisée lorsque le client a fourni un certificat invalide. |
496 | SSL Certificate Required | 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 | 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 | Le jeton a expiré ou est invalide. |
499 | Client Closed Request | 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[21]. |
5xx - Erreur du serveur / du serveur d'application
Code | Message | Signification |
---|---|---|
500 | Internal Server Error | Erreur interne du serveur. |
501 | Not Implemented | Fonctionnalité réclamée non supportée par le serveur. |
502 | Bad Gateway ou Proxy Error | 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 | Service temporairement indisponible ou en maintenance. |
504 | Gateway Time-out | Temps d’attente d’une réponse d’un serveur à un serveur intermédiaire écoulé. |
505 | HTTP Version not supported | Version HTTP non gérée par le serveur. |
506 | Variant Also Negotiates | RFC 2295[22] : 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[23]). |
509 | Bandwidth Limit Exceeded | Utilisé par de nombreux serveurs pour indiquer un dépassement de quota. |
510 | Not extended | RFC 2774[24] : La requête ne respecte pas la politique d'accès aux ressources HTTP étendues. |
511 | Network authentication required | RFC 6585[18] : 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 | Signification |
---|---|---|
520 | Unknown Error | L'erreur 520 est utilisé en tant que réponse générique lorsque le serveur d'origine retourne un résultat imprévu. |
521 | Web Server Is Down | Le serveur a refusé la connexion depuis Cloudflare. |
522 | Connection Timed Out | Cloudflare n'a pas pu négocier un TCP handshake avec le serveur d'origine. |
523 | Origin Is Unreachable | 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 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 n'a pas pu négocier un SSL/TLS handshake avec le serveur d'origine. |
526 | Invalid SSL Certificate | Cloudflare n'a pas pu valider le certificat SSL présenté par le serveur d'origine. |
527 | Railgun Error | L'erreur 527 indique que 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
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
- (en) Request for comments no 3229
- (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) « Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) », Request for comments no 2324,
- (en) Mark Nottingham et Martin Thomson, « Using Early Data in HTTP », sur tools.ietf.org (consulté le )
- (en) Request for comments no 2817
- (en) « Additional HTTP Status Codes », Request for comments no 6585,
- (en) Request for comments no 6585
- « Erreur 451 : le nouveau code signalant la censure sur internet », sur www.clubic.com, (consulté le ).
- « Erreur 451 : le nouveau code HTTP pour exposer la censure du Web », sur www.zdnet.fr, (consulté le ).
- (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