Le protocole de communicationinformatiqueHTTP 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 permettent aux logiciels client HTTP 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].
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.
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[8] : 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.
Code utilisé par une ancienne version de la RFC 2616[9], à présent réservé. Elle signifiait « Les requêtes suivantes doivent utiliser le proxy spécifié »[10].
307
Temporary Redirect
La requête doit être redirigée temporairement vers l’URI spécifiée sans changement de méthode[11].
308
Permanent Redirect
La requête doit être redirigée définitivement vers l’URI spécifiée sans changement de méthode[12].
310
Too many Redirects
La requête doit être redirigée de trop nombreuses fois, ou est victime d’une boucle de redirection.
Une authentification est nécessaire pour accéder à la ressource.
402
Payment Required
Paiement requis pour accéder à la ressource.
403
Forbidden
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.
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 »[13].
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.
RFC 2295[22] : 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[23]).
509
Bandwidth Limit Exceeded
Utilisé par de nombreux serveurs pour indiquer un dépassement de quota.
510
Not extended
RFC 2774[24] : La requête ne respecte pas la politique d'accès aux ressources HTTP étendues.
511
Network authentication required
RFC 6585[18] : 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.