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] .
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).
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.
Codes commençant par 1
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.
Codes commençant par 2
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.
Codes commençant par 3
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 se trouve à un autre URI et doit être récupérée avec une méthode GET.
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.
Codes commençant par 4
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 1er avril 1998 , 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
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
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] .
Codes commençant par 5
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.
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
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.
↑ (en) « Hypertext Transfer Protocol -- HTTP/1.0 », Request for comments no 1945, mai 1996
↑ (en) « Hypertext Transfer Protocol -- HTTP/1.1 », Request for comments no 2068, janvier 1997
↑ (en) « Hypertext Transfer Protocol -- HTTP/1.1 », Request for comments no 2616, juin 1999
↑ (en) « Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content », Request for comments no 7231, juin 2014
↑ (en) Request for comments no 2518
↑ (en) Jensen, D. et Faizi, A. , « HTTP Extensions for Distributed Authoring -- WEBDAV », sur tools.ietf.org (consulté le 29 novembre 2018 ) .
↑ (en) Request for comments no 8297
↑ a b c d e f g h i j k l m n o et p (en) Request for comments no 1945
↑ a b c d e f g h i j k l m n o p q et r (en) Request for comments no 2068
↑ (en) Request for comments no 3229
↑ a et b (en) Request for comments no 2616
↑ (en) Josh Cohen, « HTTP/1.1 305 and 306 Response Codes », sur tools.ietf.org , 5 décembre 1996 (consulté le 29 novembre 1996 ) .
↑ (en) « RFC 7231 - Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content », sur datatracker.ietf.org (consulté le 13 février 2022 ) .
↑ « RFC 7538 - The Hypertext Transfer Protocol Status Code 308 (Permanent Redirect) », sur datatracker.ietf.org (consulté le 13 février 2022 ) .
↑ « 408 », sur httpstatus.es (consulté le 16 octobre 2015 ) .
↑ (en) Request for comments no 2324
↑ (en) « Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0) », Request for comments no 2324, 1er avril 1998
↑ (en) Request for comments no 8470
↑ (en) Request for comments no 2817
↑ a b c et d (en) Request for comments no 6585
↑ (en) Request for comments no 7725
↑ (en) « Re: Status Code 499 », sur Forum de Nginx (consulté le 19 août 2016 ) .
↑ (en) Request for comments no 2295
↑ (en) Request for comments no 5842
↑ (en) Request for comments no 2774