Code HTTP - Signification de tous les codes

Le code du protocole HTTP est un code d'état renvoyé par un serveur à un client qui établit ou tente d'établir une connexion. Quand il représente un problème, ce code est accompagné par des informations complémentaires sur les causes du problème.

Le tableau ci-dessous donne la signification des différents codes HTTP et leur implication.

L'extension WebDav quelquefois mentionnée est un protocole complémentaire à HTTP ajouté pour faciliter la gestion de fichiers à distance et l'échange entre le client et le serveur. Il est défini par l'IETF.

 

Requête reçue en cours

100
Requête initiée et en cours de traitement
101
Le serveur signale avoir reçu une requête de changement de protocole et elle est acceptée.
102
En cours de traitement. Précise que le serveur est bien actif et non inaccessible. (Extension WebDav).
 
 

Requête traitée et réponse envoyée

200
OK. Traitement de la requête achevée avec succès. Le page est trouvée et affichée.
201
Créé. Etablissement d'un lien entre le demandeur et le serveur sous forme d'URI sur une ressource.
202
Accepté. La requête est reçue et acceptée mais non encore traitée.
203
Information non certifiée. Le serveur fournit en réponse une information qu'il ne certifie pas et qui peut être incomplète.
204
Pas de contenu. Aucune information à renvoyer de la part du serveur.
205
Aucune information à renvoyer et le serveur demande la réinitialisation de la requête. Dans le cas d'un formulaire, l'effacer pour l'envoyer de nouveau.
206
Contenu partiel. Seule une partie du contenu est renvoyée. (Cela peut être dû à une limitation de ressources).
207
Multiples états pour la réponse. (Extension Webdav).
210
Contenu différent entre la version serveur et la version client. (Extension Webdav).
 
 

Codes de redirection

300
Choix multiples. Le serveur dispose de différentes réponses, il peut donc retourner une liste et se baser sur un élément de la requête.
301
Déplacé de façon permanente. A utiliser quand un fichier est renommé ou déplacé en indiquant la nouvelle URL. L'ancienne URL sera ignorée des robots.
302
Déplacé de façon temporaire. On indique une URL provisoire mais les robots reviendront à l'URL originale.
303
Voir autres emplacement. Ce code est renvoyé si les données sont ailleurs, le client devant spécifier l'autre adresse (avec une méthode GET). Le client est alors redirigé sur l'autre adresse, mais non si la méthode est HEAD.
304
Non modifié. La page n'a pas été modifiée depuis la dernière requête, et aucun contenu n'est renvoyé.
Cela suppose que le serveur soit configuré pour fournir une en-tête if-modified-since.
Essentiel pour les robots des moteurs de recherche.
305
Utiliser un proxy. Réponse du serveur demandant de récupérer le document sur un serveur proxy dont l'adresse est fournie.
307
Redirection temporaire. La requête est redirigée sur une autre adresse comme en 302.
 
 

Erreur du client ou accès interdit

400
Mauvaise requête. Le serveur ne reconnaît pas la syntaxe de la commande.
401
Non authorisé. Connexion refusée. Un mot de passe est nécessaire.
402
Paiement requis. Pour un usage futur.
403
Interdit. L'accès est interdit ou il est interdit à un robot spécifié (par le serveur et non pas par robots.txt).
404
Introuvable. La page n'existe pas. Cela peut être dû à une orthographe incorrecte, une différence de casse sous Unix, ou un changement d'adresse.
405
Méthode de requête non permise.
406
Non acceptable. Le serveur ne peut fournir le type de document demandé.
407
Authentification par proxy requise. Le connexion est refusée car le client doit se connecter uniquement par un serveur proxy qui est indiqué dans la réponse.
408
Expiration du temps alloué à une requête.
409
Conflit. La requête contient une demande qui entre en conflit avec notamment une demander précédent. Les informations sur les causes sont fournies avec le code d'erreur.
410
Déplacé. Comme 404 mais précise en plus que la page introuvable existait auparavant. Google recommande son usage plutôt que 404 quand la disparition de la page est définitive.
411
Longueur nécessaire. Le serveur n'accepte pas la requête si l'en-tête Content-Length n'est pas spécifié.
412
Précondition non remplie. La requête est accompagnée de conditions que le serveur ne peut remplir.
413
Volume demandé trop important. Le serveur ne peut fournir un document de cette taille.
414
URI trop longue. La taille de l'adresse envoyée au serveur est excède le nombre de caractères autorisé. Cela arrive quand on convertit un POST en GET.
415
Type de média non reconnu. Le client demande un type de document que le serveur ne prend pas en charge.
416
Ne peut satisfaire à la plage de requête. La requête précise une étendue, une taille (par exemple 200-10000) et la ressource n'y est pas incluse.
417
Echec d'une demande. La requête contient un champ Expect et le serveur ne peut y satisfaire. La définition de ce champ est vague.
422
La requête contient une entité que le serveur ne peut traiter. (Extension WebDav).
423
Verrouillé. La page est verrouillée et ne sera pas transmise. (Extension WebDav).
424
Echec du à la méthode employée par le requête. (Extension WebDav).
451 Le site est bloqué pour une raison légale. Le fournisseur d'accès retourne alors ce code, ajouté en 2015.
 
 

Erreurs dues aux serveur

500
Erreur interne au serveur. La requête n'est pas traitée.
501
Non implémenté. Le serveur ne reconnaît pas la nature de la demande, la méthode employée par exemple.
502
Mauvaise passerelle. Quand le serveur joue un rôle de proxy ou d'intermédiaire et que l'autre serveur ne répond pas.
503
Service non disponible. Problème momentané, du à une surcharge ou autre problème du serveur.
504
Temps d'attente auprès de l'autre serveur dépassé, quand le serveur sollicité joue le rôle de passerelle.
505
Version HTTP non reconnue. Le protocole utilisé est trop récent ou non pris en charge.
507
Espace sur le serveur insuffisant pour accomplir la demande du client. (Extension WebDav).
509
Code non standard mais utilisé par des serveur en cas de dépassement de quota.

Références et outils