Aller au contenu

Liste des codes HTTP

Un article de Wikipédia, l'encyclopédie libre.
Exemple d'erreur 404 sur Wikipédia.

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

[modifier | modifier le code]
Code 504 : le serveur n'a pas répondu.

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

[modifier | modifier le code]

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

[modifier | modifier le code]

Les codes 1xx sont une réponse provisoire donnée durant le traitement de la requête, et sont suivis d'un code final en fin de requête.

Codes commençant par 1
Code Message Apparition Signification
100 Continue RFC 2068[5] La requête est en cours de traitement.
101 Switching Protocols Le serveur accepte le changement de protocole spécifié par l'entête Upgrade[6].
102 Processing WebDAV RFC 2518[7] Traitement en cours (évite que le client dépasse le temps d’attente limite).
103 Early Hints RFC 8297[8] (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

[modifier | modifier le code]
Codes commençant par 2
Code Message Apparition Signification
200 OK RFC 1945[9] Requête traitée avec succès. Le contenu de la réponse dépend de la méthode HTTP de la requête.
201 Created Requête traitée avec succès et création d’une ressource.
202 Accepted Requête acceptée sans garantie que le traitement demandé réussisse.
203 Non-Authoritative Information - Requête traitée avec succès, mais le contenu renvoyé a été modifié par un proxy.
204 No Content RFC 1945[9] Requête traitée avec succès sans contenu renvoyé.
205 Reset Content RFC 2068[5] Requête traitée avec succès, la page courante peut être réinitialisée.
206 Partial Content Requête d'un contenu partiel traité avec succès.
207 Multi-Status WebDAV Réponse multiple.
208 Already Reported Le document a été envoyé précédemment dans cette collection.
210 Content Different 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] Requête traitée avec succès et la réponse est encodée sous forme de delta avec d'autres réponses.

3xx - Redirection

[modifier | modifier le code]
Codes commençant par 3
Code Message Apparition Signification
300 Multiple Choices RFC 1945[9] 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 RFC 2068[5] La réponse se trouve à un autre URI et doit être récupérée avec une méthode GET.
304 Not Modified RFC 1945[9] Document non modifié depuis la dernière requête.
305 Use Proxy (depuis HTTP/1.1) RFC 2068[5] 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.
Codes commençant par 4
Code Message Apparition Signification
400 Bad Request RFC 1945[9] La syntaxe de la requête est erronée.
401 Unauthorized Une authentification est nécessaire pour accéder à la ressource.
402 Payment Required RFC 2068[5] Paiement requis pour accéder à la ressource.
403 Forbidden RFC 1945[9] Le serveur a compris la requête, mais refuse de l'exécuter. Contrairement à l'erreur 401, s'authentifier ne fera aucune différence[Note 1].
404 Not Found Ressource non trouvée.
405 Method Not Allowed RFC 2068[5] 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 »[15].
409 Conflict La requête ne peut être traitée à la suite d'un conflit avec l'état actuel du serveur.
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 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 L'opération ne peut avoir lieu car la ressource est verrouillée.
424 Failed Dependency La modification de la propriété n’a pas pu être effectuée en raison de l’échec d’une autre modification de propriété.
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 Le client a émis trop de requêtes dans un délai donné.
431 Request Header Fields Too Large 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 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 WebDAV Erreur irrécupérable.
Codes 4xx étendus du serveur Nginx
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 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[22].

5xx - Erreur du serveur / du serveur d'application

[modifier | modifier le code]
Codes commençant par 5
Code Message Apparition Signification
500 Internal Server Error RFC 1945[9] 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 RFC 2068[5] Temps d'attente d'une réponse d'un serveur à un serveur intermédiaire est écoulé.
505 HTTP Version not supported 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 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.
Codes 5xx étendus du mandataire Cloudflare
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 Le serveur a refusé la connexion depuis Cloudflare.
522 Connection Timed Out Cloudflare n'a pas eu de retour avec le serveur d'origine dans les temps.
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 La requête a dépassé le délai de connexion ou a échoué après que la connexion WAN a été établie.

Notes et références

[modifier | modifier le code]
Note
  1. 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.
Références
  1. (en) « Hypertext Transfer Protocol -- HTTP/1.0 », Request for comments no 1945,
  2. (en) « Hypertext Transfer Protocol -- HTTP/1.1 », Request for comments no 2068,
  3. (en) « Hypertext Transfer Protocol -- HTTP/1.1 », Request for comments no 2616,
  4. (en) « Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content », Request for comments no 7231,
  5. a b c d e f et g (en) Request for comments no 2068
  6. (en) Roy T. Fielding, Mark Nottingham et Julian Reschke, RFC 9110 - HTTP Semantics, (lire en ligne), « 7.8 Upgrade »
  7. (en) Request for comments no 2518
  8. (en) Request for comments no 8297
  9. a b c d e f et g (en) Request for comments no 1945
  10. (en) Request for comments no 3229
  11. a et b (en) Request for comments no 2616
  12. (en) Josh Cohen, « HTTP/1.1 305 and 306 Response Codes », sur tools.ietf.org, (consulté le ).
  13. (en) « RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content », sur datatracker.ietf.org (consulté le ).
  14. (en) « RFC 7538 - The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect) », sur datatracker.ietf.org (consulté le ).
  15. (en) « What Is a 408 Status Code? », sur webfx.com (consulté le ).
  16. (en) Request for comments no 2324
  17. (en) « Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) », Request for comments no 2324,
  18. (en) Request for comments no 8470
  19. (en) Request for comments no 2817
  20. a et b (en) Request for comments no 6585
  21. (en) Request for comments no 7725
  22. (en) « Re: Status Code 499 », sur Forum de Nginx (consulté le ).
  23. (en) Request for comments no 2295
  24. (en) Request for comments no 5842
  25. (en) Request for comments no 2774

Articles connexes

[modifier | modifier le code]

Liens externes

[modifier | modifier le code]