Codes de réponse HTTP

Les codes de statut de réponse HTTP indiquent si une requête HTTP a été exécutée avec succès ou non. Les réponses sont regroupées en cinq classes :

  1. Les réponses informatives (100 - 199),
  2. Les réponses de succès (200 - 299),
  3. Les messages de redirection (300 - 399),
  4. Les erreurs du client (400 - 499),
  5. Les erreurs du serveur (500 - 599).

Réponses informatives

100 Continue

Cette réponse intermédiaire indique que tout est OK pour le moment et que le client peut continuer sa requête ou l'ignorer si celle-ci est déjà finie.

101 Switching Protocols

Ce code est envoyé en réponse à un en-tête de requête Upgrade de la part du client et indique le protocole sur lequel passe le serveur.

102 Processing (en-US) (WebDAV)

Ce code indique que le serveur a reçu et est en train de traiter la requête mais qu'une réponse n'est pas encore disponible.

103 Early Hints

Ce code de statut est conçu pour être utilisé avec l'en-tête Link, ce qui permet à l'agent utilisateur de commencer le préchargement des ressources tandis que le serveur prépare une réponse.

Réponses de succès

200 OK

La requête a réussi. La signification du succès peut varier selon la méthode HTTP :

  • GET : La ressource a été récupérée et est retransmise dans le corps du message.
  • HEAD : Les en-têtes d'entité sont présents dans la réponse et il n'y a pas de corps.
  • PUT ou POST : La ressource décrivant le résultat de l'action est transmise dans le corps du message.
  • TRACE : Le corps du message contient le message de requête tel que reçu par le serveur.
201 Created

La requête a réussi et une nouvelle ressource a été créée en guise de résultat. Il s'agit typiquement de la réponse envoyée après une requête PUT ou POST.

202 Accepted

La requête a été reçue mais n'a pas encore été traitée. C'est une réponse évasive, ce qui signifie qu'il n'y a aucun moyen en HTTP d'envoyer une réponse asynchrone ultérieure indiquant le résultat issu du traitement de la requête. Elle est destinée aux cas où un autre processus ou serveur gère la requête, et peut être utile pour faire du traitement par lots.

203 Non-Authoritative Information

Ce code de réponse signifie que l'ensemble de méta-informations renvoyé n'est pas exactement l'ensemble disponible sur le serveur d'origine, mais plutôt un ensemble collecté à partir d'une copie locale ou tierce. Ce code est utilisé la plupart du temps par les serveurs miroirs ou de sauvegarde d'une autre ressource. À l'exception de cette condition, une réponse 200 OK est préférable.

204 No Content

Il n'y a pas de contenu à envoyer pour cette requête, mais les en-têtes peuvent être utiles. L'agent utilisateur peut mettre à jour ses en-têtes en cache pour cette ressource en les remplaçant par les nouveaux.

205 Reset Content

Indique à l'agent utilisateur de réinitialiser le document qui a envoyé cette requête.

206 Partial Content

Ce code de réponse est utilisé en réaction à l'en-tête Range (en-US) envoyé par le client pour séparer le téléchargement en plusieurs flux.

207 Multi-Status (en-US) (WebDAV)

Une réponse multi-statut donne des informations sur des ressources multiples dans les situations où les codes de statut multiples sont appropriés.

208 Already Reported (en-US) (WebDAV)

Utilisé au sein d'un élément de réponse DAV <dav:propstat> pour éviter d'énumérer à maintes reprises les membres internes de bindings multiples vers la même collection.

226 IM Used (en-US) (HTTP Delta encoding)

Le serveur a exécuté une requête GET pour la ressource, et la réponse est une représentation du résultat d'une ou plusieurs manipulations d'instance appliquées à l'instance courante.

Messages de redirection

300 Multiple Choices

La requête a plusieurs réponses possibles. L'agent utilisateur ou l'utilisateur doit choisir l'une d'entre elles. Il n'y a pas de manière standard pour choisir l'une de ces réponses mais des liens HTML vers les choix sont recommandés afin de permettre à l'utilisateur de choisir.

301 Moved Permanently

Ce code de réponse signifie que l'URL de la ressource demandée a été modifiée. Une nouvelle URL est donnée dans la réponse.

302 Found

Ce code de réponse indique que l'URI de la ressource demandée a été modifiée temporairement. De nouveaux changements dans l'URI pourront être effectués ultérieurement. Par conséquent, cette même URI devrait être utilisée par le client pour les requêtes futures.

303 See Other

Le serveur a envoyé cette réponse pour diriger le client vers la ressource demandée via un autre URI en utilisant une requête GET.

304 Not Modified

Ce code est utilisé pour des raisons de cache. Il indique au client que la réponse n'a pas été modifiée. De fait, le client peut continuer à utiliser la même version de la réponse, mise en cache.

305 Use Proxy Obsolète

A été défini dans une version antérieure de la spécification HTTP pour indiquer qu'une réponse sollicitée doit transiter par un proxy. Ce code est aujourd'hui périmé pour des raisons de sécurité relatives à la configuration d'un proxy.

306 unused

Ce code de réponse n'est plus en service, son usage est actuellement réservé. Il était utilisé dans une version précédente de la spécification HTTP/1.1.

307 Temporary Redirect

Le serveur a envoyé cette réponse pour rediriger le client afin d'obtenir la ressource demandée via un autre URI, en utilisant la même méthode que précédemment. Ce code a la même sémantique que le code 302 Found, à l'exception près que l'agent utilisateur ne doit pas changer la méthode HTTP utilisée : si POST était utilisé dans la première requête, alors POST doit être utilisé dans la seconde.

308 Permanent Redirect

Cela signifie que la ressource a été déplacée de manière permanente vers une autre URI, spécifiée dans l'en-tête de réponse HTTP Location:. Ce code a la même sémantique que le code 301 Moved Permanently, à l'exception près que l'agent utilisateur ne doit pas changer la méthode HTTP utilisée : si POST était utilisé dans la première requête, alors POST doit être utilisé dans la seconde.

Réponses d'erreur côté client

400 Bad Request

Cette réponse indique que le serveur n'a pas pu comprendre la requête à cause d'une syntaxe invalide.

401 Unauthorized

Bien que le standard HTTP indique « non-autorisé », la sémantique de cette réponse correspond à « non-authentifié » : le client doit s'authentifier afin d'obtenir la réponse demandée.

402 Payment Required Expérimental

Ce code de réponse est réservé à une utilisation future. Le but initial justifiant la création de ce code était l'utilisation de systèmes de paiement numérique. Cependant, il n'est pas utilisé actuellement et aucune convention standard n'existe à ce sujet.

403 Forbidden

Le client n'a pas les droits d'accès au contenu, donc le serveur refuse de donner la véritable réponse.

404 Not Found

Le serveur n'a pas trouvé la ressource demandée. Ce code de réponse est principalement connu pour son apparition fréquente sur le web.

405 Method Not Allowed

La méthode de la requête est connue du serveur mais n'est pas prise en charge pour la ressource cible. Par exemple, une API peut ne pas autoriser l'utilisation du verbe DELETE pour supprimer une ressource.

406 Not Acceptable

Cette réponse est envoyée quand le serveur web, après une négociation de contenu géré par le serveur, ne trouve rien qui satisfasse les critères donnés par l'agent utilisateur.

407 Proxy Authentication Required

Similaire au code 401, sauf que l'authentification doit être effectuée au travers d'un proxy.

408 Request Timeout

Cette réponse est envoyée via une connexion en attente par certains serveurs, même sans qu'il y ait de requête préalable de la part du client. Cela signifie que le serveur aimerait fermer cette connexion inutilisée. Cette réponse est bien plus utilisée depuis que certains navigateurs, comme Chrome, Firefox 27+ ou IE9, utilisent des mécanismes de préconnexion HTTP pour accélérer la navigation. Notez aussi que certains serveurs ferment simplement la connexion sans même envoyer ce message.

409 Conflict

Cette réponse est envoyée quand une requête entre en conflit avec l'état actuel du serveur.

410 Gone

Cette réponse est envoyée lorsque le contenu demandé a été supprimé de façon permanente du serveur, sans nouvelle adresse. Les clients doivent vider les caches et liens associés à cette ressource. La spécification HTTP a conçu ce code de statut pour qu'il soit utilisé pour des « services promotionnels limités dans le temps ». Les API ne devraient pas se sentir obligées d'indiquer que des ressources ont été supprimées avec ce code de statut.

411 Length Required

Le serveur a rejeté la requête, car le champ d'en-tête Content-Length n'est pas défini et le serveur l'impose.

412 Precondition Failed

Le client a indiqué des préconditions dans ses en-têtes que le serveur ne remplit pas.

413 Payload Too Large

L'entité demandée est plus grosse que la limite définie par le serveur. Le serveur peut fermer la connexion ou retourner un champ d'en-tête Retry-After.

414 URI Too Long

L'URI interrogé par le client est plus long que ce que le serveur est en mesure d'interpréter.

415 Unsupported Media Type

Le format média des données demandées n'est pas supporté par le serveur, donc le serveur rejette la requête.

416 Range Not Satisfiable

La plage spécifiée par le champ d'en-tête Range de la requête ne peut pas être satisfaite ; il est possible que la plage excède la taille des données provenant de l'URI ciblé.

417 Expectation Failed

Ce code de réponse signifie que les attentes indiquées par le champ d'en-tête de requête Expect n'ont pas pu être satisfaites par le serveur.

418 I'm a teapot

Le serveur refuse de brasser du café avec une théière.

421 Misdirected Request (en-US)

La requête a été envoyée à un serveur incapable de produire une réponse. Ce code peut être envoyé par un serveur qui n'a pas été configuré pour produire des réponses sujettes à la combinaison de schémas et d'identités incluse dans l'URI de la requête.

422 Unprocessable Entity (WebDAV)

La requête a bien été constituée mais n'a pas pu être traitée à cause d'erreurs sémantiques.

423 Locked (en-US) (WebDAV)

La ressource qui est en train d'être consultée est verrouillée.

424 Failed Dependency (en-US) (WebDAV)

La requête a échoué à cause de l'échec d'une requête précédente.

425 Too Early Expérimental

Indiquer que le serveur ne souhaite pas traiter une requête qui pourrait être rejouée.

426 Upgrade Required

Le serveur refuse de traiter la requête en utilisant le protocole actuel mais peut accepter de le faire si le client opte pour un autre protocole. Le serveur doit envoyer un en-tête Upgrade dans la réponse 426 pour indiquer le(s) protocole(s) demandé(s) (Section 6.7 de [RFC7230]).

428 Precondition Required

Le serveur d'origine impose que la requête soit conditionnelle. Ceci est prévu pour empêcher le problème de 'perte de mise à jour', où un client récupère l'état d'une ressource avec GET, le modifie, et le renvoie au serveur avec PUT pendant qu'un tiers modifie l'état du serveur, ce qui conduit à un conflit.

429 Too Many Requests

L'utilisateur a émis trop de requêtes dans un laps de temps donné.

431 Request Header Fields Too Large

Le serveur n'est pas disposé à traiter la requête, car les champs d'en-tête sont trop longs. La requête peut être renvoyée après avoir réduit la taille des en-têtes.

L'utilisateur tente d'accéder à une ressource illégale, telle qu'une page censurée par un gouvernement.

Réponses d'erreur côté serveur

500 Internal Server Error

Le serveur a rencontré une situation qu'il ne sait pas traiter.

501 Not Implemented

La méthode de requête n'est pas supportée par le serveur et ne peut pas être traitée. Les seules méthodes que les serveurs sont tenus de prendre en charge (et donc pour lesquelles ils ne peuvent pas renvoyer ce code) sont GET et HEAD.

502 Bad Gateway

Cette réponse d'erreur signifie que le serveur, alors qu'il fonctionnait en tant que passerelle pour recevoir une réponse nécessaire pour traiter la requête, a reçu une réponse invalide.

503 Service Unavailable

Le serveur n'est pas prêt pour traiter la requête. Les causes les plus communes sont que le serveur est éteint pour maintenance ou qu'il est surchargé. Notez qu'avec cette réponse, une page ergonomique peut expliquer le problème. Ces réponses doivent être utilisées temporairement et le champ d'en-tête Retry-After doit, dans la mesure du possible, contenir une estimation de l'heure de reprise du service. Le webmestre doit aussi faire attention aux en-têtes de mise en cache qui sont envoyés avec cette réponse (qui ne doivent typiquement pas être mis en cache).

504 Gateway Timeout

Cette réponse d'erreur est renvoyée lorsque le serveur sert de passerelle et ne peut pas donner de réponse dans les temps.

505 HTTP Version Not Supported

La version de HTTP utilisée dans la requête n'est pas prise en charge par le serveur.

506 Variant Also Negotiates

Le serveur a une erreur de configuration interne : la négociation de contenu transparente pour la requête aboutit à une dépendance circulaire.

507 Insufficient Storage (WebDAV)

Le serveur a une erreur de configuration interne : la ressource sélectionnée est configurée pour participer elle-même à une négociation de contenu transparente, et n'est par conséquent pas un nœud terminal valable dans le processus de négociation.

508 Loop Detected (WebDAV)

Le serveur a détecté une boucle infinie en traitant la requête.

510 Not Extended

Des extensions supplémentaires sont requises afin que le serveur puisse satisfaire la requête.

511 Network Authentication Required

Le code de statut 511 indique que le client doit s'authentifier afin de pouvoir accéder au réseau.

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi