Les codes HTTP

Contenus
    Table des contenus

      Le protocole de communication HyperText Transfer Protocol

      Littéralement, le « Protocole de Transfert hyperTexte », est un protocole de communication client-serveur développé pour le World Wide Web.

      La lettre S, pour Secure, dans HTTPS indique la variante sécurisée par le chiffrement et l’authentification.

      Le modèle en couches

      Périmètre d’action

      HTTP est un protocole de la couche application dans le modèle OSI. Il peut fonctionner sur n’importe quelle connexion fiable. Dans les faits on utilise le protocole TCP comme couche de transport. Un serveur HTTP utilise alors par défaut le port 80 (443 pour HTTPS).

      Les clients HTTP les plus connus sont les navigateurs Web. Il est aussi utilisé dans des interfaces de programmation d’application (API) pour accéder aux données d’un serveur ainsi que des systèmes pour récupérer automatiquement le contenu d’un site tels que les aspirateurs de site Web et les robots d’indexation.

      Structure des codes

      Les codes sont composés de 3 chiffres. Ils permettent aux logiciels client HTTP de valider le succès d’une requête ou, sinon, de connaître le type d’erreur.

      Le premier chiffre donne la catégorie :

      1 – Information

      2 – Succès

      3 – Redirection

      4 – Erreur du client HTTP

      5 – Erreur du serveur

      Certains sont prévus pour des usages futur, d’autres n’entrainent pas d’affichages puisqu’ils concernent un succès. Certains sont spécifiques de WebDAV qui est une extension de HTTP.

      Codes commençant par 1

      CodeMessageSignification
      100ContinueAttente de la suite de la requête.
      101Switching ProtocolsAcceptation du changement de protocole.
      102ProcessingWebDAV RFC 2518 Traitement en cours (évite que le client dépasse le temps d’attente limite).
      103Early HintsRFC 82977 : (Expérimental) Dans l’attente de la réponse définitive, le serveur renvoie des liens que le client peut commencer à télécharger.
      Information

      Codes commençant par 2

      CodeMessageSignification
      200OKRequête traitée avec succès. La réponse dépendra de la méthode de requête utilisée.
      201CreatedRequête traitée avec succès et création d’un document.
      202AcceptedRequête traitée, mais sans garantie de résultat.
      203Non-Authoritative InformationInformation renvoyée, mais générée par une source non certifiée.
      204No ContentRequête traitée avec succès mais pas d’information à renvoyer.
      205Reset ContentRequête traitée avec succès, la page courante peut être effacée.
      206Partial ContentUne partie seulement de la ressource a été transmise.
      207Multi-StatusWebDAV : Réponse multiple.
      208Already ReportedWebDAV : Le document a été envoyé précédemment dans cette collection.
      210Content DifferentWebDAV : La copie de la ressource côté client diffère de celle du serveur (contenu ou propriétés).
      226IM UsedRFC 32298 : 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.
      Succès

      Codes commençant par 3

      CodeMessageSignification
      300Multiple ChoicesL’URI demandée se rapporte à plusieurs ressources.
      301Moved PermanentlyDocument déplacé de façon permanente.
      302FoundDocument déplacé de façon temporaire.
      303See OtherLa réponse à cette requête est ailleurs.
      304Not ModifiedDocument non modifié depuis la dernière requête.
      305Use Proxy (depuis HTTP/1.1)La requête doit être ré-adressée au proxy.
      306Switch ProxyCode utilisé par une ancienne version de la RFC 2616, à présent réservé. Elle signifiait « Les requêtes suivantes doivent utiliser le proxy spécifié ».
      307Temporary RedirectLa requête doit être redirigée temporairement vers l’URI spécifiée sans changement de méthode.
      308Permanent RedirectLa requête doit être redirigée définitivement vers l’URI spécifiée sans changement de méthode12.
      310Too many RedirectsLa requête doit être redirigée de trop nombreuses fois, ou est victime d’une boucle de redirection.
      Redirection

      Codes commençant par 4

      CodeMessageSignification
      400Bad RequestLa syntaxe de la requête est erronée.
      401UnauthorizedUne authentification est nécessaire pour accéder à la ressource.
      402Payment RequiredPaiement requis pour accéder à la ressource.
      403ForbiddenLe 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.
      404Not FoundRessource non trouvée.
      405Method Not AllowedMéthode de requête non autorisée.
      406Not AcceptableLa ressource demandée n’est pas disponible dans un format qui respecterait les en-têtes « Accept » de la requête.
      407Proxy Authentication RequiredAccès à la ressource autorisé par identification avec le proxy.
      408Request Time-outTemps 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 ».
      409ConflictLa requête ne peut être traitée à la suite d’un conflit avec l’état actuel du serveur.
      410GoneLa ressource n’est plus disponible et aucune adresse de redirection n’est connue.
      411Length RequiredLa longueur de la requête n’a pas été précisée.
      412Precondition FailedPréconditions envoyées par la requête non vérifiées.
      413Request Entity Too LargeTraitement abandonné dû à une requête trop importante.
      414Request-URI Too LongURI trop longue.
      415Unsupported Media TypeFormat de requête non supporté pour une méthode et une ressource données.
      416Requested range unsatisfiableChamps d’en-tête de requête « range » incorrect.
      417Expectation failedComportement attendu et défini dans l’en-tête de la requête insatisfaisante.
      418I’m a teapot« Je suis une théière » : le serveur informe qu’il refuse de faire le café parce qu’il est une théière.
      Ce code est défini dans la RFC 2324 datée du 1er avril 1998, Hyper Text Coffee Pot Control Protocol.
      Certains serveurs utilisent cette réponse pour les requêtes qu’ils ne souhaitent pas traiter (par exemple les requêtes automatiques)
      419Page expiredRessource expirée
      421Bad mapping / Misdirected RequestLa 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).
      422Unprocessable entityWebDAV : L’entité fournie avec la requête est incompréhensible ou incomplète.
      423LockedWebDAV : L’opération ne peut avoir lieu car la ressource est verrouillée.
      424Method failureWebDAV : Une méthode de la transaction a échoué.
      425Too EarlyRFC 8470 : le serveur ne peut traiter la demande car elle risque d’être rejouée.
      426Upgrade RequiredRFC 2817 : Le client devrait changer de protocole, par exemple au profit de TLS/1.0.
      428Precondition RequiredRFC 6585 : La requête doit être conditionnelle.
      429Too Many RequestsRFC 6585 : le client a émis trop de requêtes dans un délai donné.
      431Request Header Fields Too LargeRFC 6585 : Les entêtes HTTP émises dépassent la taille maximale admise par le serveur.
      449Retry WithCode défini par Microsoft. La requête devrait être renvoyée après avoir effectué une action.
      450Blocked by Windows Parental ControlsCode défini par Microsoft. Cette erreur est produite lorsque les outils de contrôle parental de Windows sont activés et bloquent l’accès à la page.
      451Unavailable For Legal ReasonsCe code d’erreur indique que la ressource demandée est inaccessible pour des raisons d’ordre légal.
      456Unrecoverable ErrorWebDAV : Erreur irrécupérable.
      Erreur du client HTTP

      Codes 4xx étendus au serveur Nginx

      CodeMessageSignification
      444No ResponseIndique que le serveur n’a retourné aucune information vers le client et a fermé la connexion. Visible seulement dans les journaux du serveur Nginx.
      495SSL Certificate ErrorUne extension de l’erreur 400 Bad Request, utilisée lorsque le client a fourni un certificat invalide.
      496SSL Certificate RequiredUne extension de l’erreur 400 Bad Request, utilisée lorsqu’un certificat client requis n’est pas fourni.
      497HTTP Request Sent to HTTPS PortUne 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.
      498Token expired/invalidLe jeton a expiré ou est invalide.
      499Client Closed RequestLe client a fermé la connexion avant de recevoir la réponse. Cette erreur se produit quand le traitement est trop long côté serveur.
      Codes 4xx étendus au serveur Nginx

      Codes commençant par 5

      CodeMessageSignification
      500Internal Server ErrorErreur interne du serveur. Désigne une erreur due à un défaut de conception d’un programme ou de configuration, ou encore due à des facteurs externes que le programme n’est pas capable de gérer (manque de mémoire, matériel défaillant…). Elle est en général la manifestation d’un bug.
      Les administrateurs des serveurs enregistreront ces erreurs avec d’autres informations à propos de la requête afin d’empêcher que l’erreur ne se reproduise à nouveau.
      501Not ImplementedFonctionnalité réclamée non supportée par le serveur.
      502Bad Gateway ou Proxy ErrorEn agissant en tant que serveur proxy ou passerelle, le serveur a reçu une réponse invalide depuis le serveur distant.
      503Service UnavailableService temporairement indisponible ou en maintenance.
      504Gateway Time-outTemps d’attente d’une réponse d’un serveur à un serveur intermédiaire écoulé.
      505HTTP Version not supportedVersion HTTP non gérée par le serveur.
      506Variant Also NegotiatesRFC 2295 : Erreur de négociation dans un contexte de Transparent content negociation. Ce protocole permet à un client de recevoir la meilleure variante d’une ressource donnée, quand le serveur prend en charge plusieurs variantes. Indique une erreur de configuration interne du serveur lorsque la variante choisie est elle-même configurée pour s’engager dans la négociation de contenu, et n’est donc pas un point final de négociation approprié.
      507Insufficient storageWebDAV : Espace insuffisant pour modifier les propriétés ou construire la collection.
      508Loop detectedWebDAV : Boucle dans une mise en relation de ressources (RFC 5842).
      509Bandwidth Limit ExceededUtilisé par de nombreux serveurs pour indiquer un dépassement de quota.
      510Not extendedRFC 2774 : La requête ne respecte pas la politique d’accès aux ressources HTTP étendues.
      511Network authentication requiredRFC 6585 : 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.
      Erreurs du serveur

      Codes 5xx étendus au mandataire Cloudflare

      CodeMessageSignification
      520Unknown ErrorL’erreur 520 est utilisé en tant que réponse générique lorsque le serveur d’origine retourne un résultat imprévu.
      521Web Server Is DownLe serveur a refusé la connexion depuis Cloudflare.
      522Connection Timed OutCloudflare n’a pas eu de retour avec le serveur d’origine dans les temps.
      523Origin Is UnreachableCloudflare 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.
      524A Timeout OccurredCloudflare 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.
      525SSL Handshake FailedCloudflare n’a pas pu négocier un SSL/TLS handshake avec le serveur d’origine.
      526Invalid SSL CertificateCloudflare n’a pas pu valider le certificat SSL présenté par le serveur d’origine.
      527Railgun ErrorL’erreur 527 indique que la requête a dépassé le délai de connexion ou a échoué après que la connexion WAN a été établie.
      Codes 5xx étendus au mandataire Cloudflare

      Sources

      https://fr.wikipedia.org/wiki/Mod%C3%A8le_OSI

      https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP

      https://developer.mozilla.org/fr/docs/Web/HTTP/Status/418

      https://datatracker.ietf.org/doc/html/rfc2324

      modifié le 2023-03-08 19:24 par admin

      modifié le

      par

      dans