Blog Mestre

Le Blog d'un tonton flingueur du net

Les codes de réponse HTTP

Le protocole HTTP définit à partir de la RCF 2616 des codes de statut retournés au client faisant une requête auprès d’un serveur WEB afin de l’informer du résultat de cette requête. Ce code de statut est un entier de trois chiffres, dont le premier chiffre définit la classe de réponse (Les deux derniers chiffres n’ayant eux, aucun rôle de catégorisation). Cet article vous propose la liste des codes de statut HTTP ainsi que leur utilisation.

La classification des codes de réponse HTTP

Il y a cinq valeurs de classe de réponse HTTP :

  • 1xx : les codes d’informations : Demande reçue, poursuite du traitement
  • 2xx : les codes de succès : l’action a bien été reçue, comprise et acceptée
  • 3xx : les codes de redirection : des action ultérieures doivent êtres entreprises afin de mener la demande à bien
  • 4xx : les codes d’erreur du client : La demande contient une mauvaise syntaxe et ne peut pas être satisfaite
  • 5xx : les codes d’erreur serveur : le serveur a échoué à satisfaire une demande apparemment valide

Les codes HTTP d’information

code HTTP 100 : Continuer

L’objet de ce code est de permettre au client qui effectue la requête de déterminer si le serveur accepte la requête (sur la base des en-têtes fournies) avant que le client n’envoie le corps de la requête. Dans certains cas, il peut être inapproprié ou très inefficace pour le client d’envoyer le corps de la requête si le serveur doit la rejeter sans en consulter le contenu. Pour recevoir une réponse 100, le client doit envoyer préalablement au serveur une requête avec un champ d’en-tête de demande Expect “100-continue”.

code HTTP 101 : Changement de protocole

Le serveur comprend et accepte de se conformer à la demande du client, d’un changement du protocole d’application à utiliser sur cette connexion. Le serveur va changer les protocoles au profit de ceux définis par le champ d’en-tête “Upgrade” de la réponse ,immédiatement après la ligne vide qui termine la réponse 101.

Les codes HTTP de succès

Code HTTP 200 : OK

La demande a réussi. Les informations retournées avec la réponse dépendent de la méthode utilisée dans la requête :

  • GET : une entité correspondant à la ressource demandée est envoyée dans la réponse
  • HEAD : des champs d’en-tête d’entité correspondant à la ressource demandée sont envoyés dans la réponse sans aucun corps de message
  • POST : une entité décrivant ou contenant le résultat de l’action
  • TRACE : une entité contenant le message de demande tel que reçu par le serveur

Code HTTP 201 : Créé

La demande a été satisfaite et il en résulte qu’une nouvelle ressource a été créée. La ressource nouvellement créée peut être référencée par la ou les URI retournées dans l’en-tête de la réponse, avec l’URI la plus appropriée pour la ressource donnée par le champ d’en-tête “Location”.

Code HTTP 202 : Accepté

Le traitement de la demande a été accepté, mais le traitement n’est pas encore achevé. La demande pourra finalement être ou non traitée, comme elle pourrait être non approuvée lorsque le traitement aura réellement lieu. Il n’est pas possible de renvoyer un code d’état à partir d’une opération asynchrone comme celle-ci.

Code HTTP 203 : Information non certifiée

L’information retournée n’a pas été générée par le serveur HTTP mais par une autre source non authentifiée.

Code HTTP 204 : Pas de contenu

Le serveur a satisfait à la requête mais n’a pas besoin de retourner un corps d’entité. Cette réponse est principalement destinée à permettre l’entrée d’actions qui doivent avoir lieu sans provoquer de changement de la vision du document actif pour le client. La réponse 204 ne doit pas inclure de corps de message, et donc, elle est toujours terminée par la première ligne vide après les champs d’en-tête.

Code HTTP 205 : Contenu réinitialisé

Le serveur a satisfait à la demande et le client doit rétablir la vision du document qui a causé l’envoi de la demande. Cette réponse est principalement destinée à permettre l’entrée d’actions qui doivent avoir lieu via une entrée de l’utilisateur (par exemple un formulaire), suivie par un nettoyage de telle sorte que l’utilisateur puisse facilement initier une autre action d’entrée.

Code HTTP 206 : Contenu partiel

Le serveur a satisfait à la demande GET partielle pour la ressource.

Les codes HTTP de redirection

Code HTTP 300 : Choix multiples

La ressource correspond à plusieurs éléments d’un ensemble de représentations, chacun ayant sa propre localisation spécifique. Le serveur doit retourner des informations permettant au client de choisir l’élément approprié (cas par exemple d’un document en plusieurs langues)

Code HTTP 301 : Changement d’adresse définitif

La ressource demandée a été allouée à une nouvelle URI permanente et toute référence future à cette ressource doit utiliser l’URI retournée. Les clients qui possèdent des capacités d’édition de liens doivent relier automatiquement les références à l’URI de demande vers la nouvelle référence retournée par le serveur, lorsque c’est possible. Cette réponse peut être mise en mémoire cache sauf mention contraire.

Code HTTP 302 : Changement d’adresse temporaire

La ressource demandée réside temporairement sous une URI différente. Le client doit continuer d’utiliser l’URI de demande pour les demandes ultérieures. La ressource ne doit être mise en mémoire cache que si c’est indiqué par un en-tête “Cache-Control” ou “Expires”.

Code HTTP 303 : Voir ailleurs

La réponse à la requête peut être trouvée sous une URI différente et doit être restituée en utilisant une méthode GET. Cette méthode existe principalement pour permettre la sortie d’un script activé avec POST pour rediriger le client. Le nouvel URI n’est pas une référence de substitution à la ressource demandée à l’origine.

Code HTTP 304 : Non modifié

Si le client a effectué une demande GET conditionnelle et si l’accès est autorisé, mais que le document n’a pas été modifié, le serveur doit répondre par ce code d’état.  Cette réponse permet au client (qui utilise un cache) de savoir si le contenu demandé a expiré et si il doit donc le recharger.

Code HTTP 305 : Utiliser le mandataire

L’accès à la ressource demandée doit être effectué à travers le mandataire donné par le champ d’en-tête “Location”.

Code HTTP 306 : Non utilisé

Le code d’état 306 était utilisé dans une version précédente de la spécification, il n’est plus utilisé, et le code est réservé.

Code HTTP 307 : Redirection temporaire

La ressource demandée réside temporairement sous une URI différente. Le client doit continuer d’utiliser l’URI de demande pour les demandes ultérieures et ne doit pas automatiquement rediriger la demande sauf si elle peut être confirmée par l’utilisateur.

Les codes HTTP d’erreur du client

Code HTTP 400 : Mauvaise requête

La requête n’a pas pu être comprise par le serveur à cause d’une syntaxe mal formée. Le client ne doit pas répéter la demande sans modifications.

Code HTTP 401 : Non autorisé

La requête exige une authentification de l’utilisateur pour accéder à la ressource.

Code HTTP 402 : Paiement exigé

Ce code est réservé pour une utilisation future.

Code HTTP 403 : Interdit

Le serveur a compris la demande, mais refuse de la satisfaire. Le client ne doit pas répéter la requête.

Code HTTP 404 : Non trouvé

Le serveur n’a rien trouvé qui corresponde à l’URI de requête. Aucune indication n’est donnée sur le fait que la condition soit temporaire ou permanente.

Code HTTP 405 : Méthode non autorisée

La méthode spécifiée par la requête n’est pas admise pour la ressource identifiée par l’URI demandée.

Code HTTP 406 : Non acceptable

La ressource identifiée par la requête n’est pas du type demandé par le client.

Code HTTP 407 : Authentification mandataire exigée

Ce code est similaire à 401 (Non autorisé), mais indique que le client doit d’abord s’authentifier auprès du mandataire.

Code HTTP 408 : Requête hors-délai

Le client n’a pas produit de requête dans le délai pendant lequel serveur était prêt à attendre. Le client peut cependant répéter la requête sans modifications ultérieurement.

Code HTTP 409 : Conflit

La requête n’a pu être achevée en raison d’un conflit avec l’état de la ressource demandée. Des informations sur les raisons de ce conflit doivent être indiquée en retour.

Code HTTP 410 : Parti

La ressource demandée n’est plus disponible sur le serveur et aucune adresse alternative n’est connue. Cette condition est en principe considérée comme permanente. Les clients avec des capacités d’édition de liens doivent supprimer les références à l’URI de requête après approbation de l’utilisateur.

Code HTTP 411 : Longueur exigée

Le serveur refuse de servir la requête sans une longueur de contenu définie. Le client peut répéter la requête en y ajoutant un champ d’en-tête “Content-Length” valide.

Code HTTP 412 : pré-condition non remplie

La pré-condition donnée dans un ou plusieurs des champs d’en-tête de la requête a été évaluée à faux lorsqu’elle a été testée par le serveur.

Code HTTP 413 : Corps de requête trop grand

Le serveur refuse de traiter une demande parce que l’entité de requête est plus grande que ce que le serveur est désireux ou capable de traiter. Le serveur peut clore la connexion pour empêcher le client de poursuivre la demande.

Code HTTP 414 : URI trop long

Le serveur refuse de servir la demande parce que l’URI de requête est plus longue que ce que le serveur peut interpréter.

Code HTTP 415 : Format non supporté

Le serveur refuse de servir la requête parce que la ressource est dans un format non pris en charge pour la méthode demandée.

Code HTTP 416 : Intervalle impossible à satisfaire

Le sous-ensemble de recherche spécifié est invalide.

Code HTTP 417 : Souhait en attente échoué

L’attente donnée dans un champ d’en-tête de demande “Expect” n’a pas pu être satisfaite par le serveur.

Les codes HTTP d’erreur du serveur

Code HTTP 500 : Erreur interne du serveur

Le serveur a rencontrée une erreur interne qui l’empêche de satisfaire la requête.

Code HTTP 501 : Non implémenté

Le serveur ne prend pas en charge la fonctionnalité exigée pour satisfaire la requête.

Code HTTP 502 : Mauvais intermédiaire

Le serveur mandataire a reçu une réponse invalide de la part du serveur auquel il a accédé pour satisfaire la requête.

Code HTTP 503 : Service indisponible

Le serveur est momentanément incapable de traiter la requête en raison d’une surcharge ou d’une opération de maintenance.

Code HTTP 504 : Intermédiaire hors-délai

Le serveur mandataire, n’a pas reçu à temps la réponse de la part du serveur auquel il a accédé pour satisfaire la requête.

Code HTTP 505 : Version HTTP non supportée

Le serveur ne prend pas en charge, ou refuse de prendre en charge, la version de protocole HTTP qui a été utilisée par la requête.

Catégorie : Pense-bêtes
Mot-Clé : ,
  • Samuel a dit :

    Je fais beaucoup d’ajax et la connaissance de ces codes et tres importante pour la gestion des differents cas. Je bookmark cet article direct, il me servira de referenciel a consulter en cas de besoin ! merci

    22/07/2012 à 17:24
  • Louis a dit :

    Merci, très utile car sois je les confond, soit je les oublie

    05/12/2012 à 15:04

Votre adresse email ne sera pas publiée. Champs requis marqués avec *

*