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
Code | Message | Signification |
100 | Continue | Attente de la suite de la requête. |
101 | Switching Protocols | Acceptation du changement de protocole. |
102 | Processing | WebDAV RFC 2518 Traitement en cours (évite que le client dépasse le temps d’attente limite). |
103 | Early Hints | RFC 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. |
Codes commençant par 2
Code | Message | Signification |
200 | OK | Requête traitée avec succès. La réponse dépendra de la méthode de requête utilisée. |
201 | Created | Requête traitée avec succès et création d’un document. |
202 | Accepted | Requête traitée, mais sans garantie de résultat. |
203 | Non-Authoritative Information | Information renvoyée, mais générée par une source non certifiée. |
204 | No Content | Requête traitée avec succès mais pas d’information à renvoyer. |
205 | Reset Content | Requête traitée avec succès, la page courante peut être effacée. |
206 | Partial Content | Une partie seulement de la ressource a été transmise. |
207 | Multi-Status | WebDAV : Réponse multiple. |
208 | Already Reported | 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 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. |
Codes commençant par 3
Code | Message | Signification |
300 | Multiple Choices | L’URI demandée se rapporte à plusieurs ressources. |
301 | Moved Permanently | Document déplacé de façon permanente. |
302 | Found | Document déplacé de façon temporaire. |
303 | See Other | La réponse à cette requête est ailleurs. |
304 | Not Modified | Document non modifié depuis la dernière requête. |
305 | Use Proxy (depuis HTTP/1.1) | La requête doit être ré-adressée au proxy. |
306 | Switch Proxy | Code 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é ». |
307 | Temporary Redirect | La requête doit être redirigée temporairement vers l’URI spécifiée sans changement de méthode. |
308 | Permanent Redirect | La requête doit être redirigée définitivement vers l’URI spécifiée sans changement de méthode12. |
310 | Too many Redirects | La requête doit être redirigée de trop nombreuses fois, ou est victime d’une boucle de redirection. |
Codes commençant par 4
Code | Message | Signification |
400 | Bad Request | La syntaxe de la requête est erronée. |
401 | Unauthorized | 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. |
404 | Not Found | Ressource non trouvée. |
405 | Method Not Allowed | Méthode de requête non autorisée. |
406 | Not Acceptable | 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 ». |
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. |
414 | Request-URI Too Long | URI trop longue. |
415 | Unsupported Media Type | Format de requête non supporté pour une méthode et une ressource données. |
416 | Requested range unsatisfiable | Champs d’en-tête de requête « range » incorrect. |
417 | Expectation failed | Comportement attendu et défini dans l’en-tête de la requête insatisfaisante. |
418 | I’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) |
419 | Page expired | Ressource expirée |
421 | Bad mapping / Misdirected Request | La 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). |
422 | Unprocessable entity | WebDAV : L’entité fournie avec la requête est incompréhensible ou incomplète. |
423 | Locked | WebDAV : L’opération ne peut avoir lieu car la ressource est verrouillée. |
424 | Method failure | WebDAV : Une méthode de la transaction a échoué. |
425 | Too Early | RFC 8470 : le serveur ne peut traiter la demande car elle risque d’être rejouée. |
426 | Upgrade Required | RFC 2817 : Le client devrait changer de protocole, par exemple au profit de TLS/1.0. |
428 | Precondition Required | RFC 6585 : La requête doit être conditionnelle. |
429 | Too Many Requests | RFC 6585 : le client a émis trop de requêtes dans un délai donné. |
431 | Request Header Fields Too Large | RFC 6585 : Les entêtes HTTP émises dépassent la taille maximale admise par le serveur. |
449 | Retry With | Code défini par Microsoft. La requête devrait être renvoyée après avoir effectué une action. |
450 | Blocked by Windows Parental Controls | Code 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. |
451 | Unavailable For Legal Reasons | Ce code d’erreur indique que la ressource demandée est inaccessible pour des raisons d’ordre légal. |
456 | Unrecoverable Error | WebDAV : Erreur irrécupérable. |
Codes 4xx étendus au serveur Nginx
Code | Message | Signification |
444 | No Response | Indique que le serveur n’a retourné aucune information vers le client et a fermé la connexion. Visible seulement dans les journaux du serveur Nginx. |
495 | SSL Certificate Error | Une extension de l’erreur 400 Bad Request, utilisée lorsque le client a fourni un certificat invalide. |
496 | SSL Certificate Required | Une extension de l’erreur 400 Bad Request, utilisée lorsqu’un certificat client requis n’est pas fourni. |
497 | HTTP Request Sent to HTTPS Port | Une 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. |
498 | Token expired/invalid | Le jeton a expiré ou est invalide. |
499 | Client Closed Request | Le 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 commençant par 5
Code | Message | Signification |
500 | Internal Server Error | Erreur 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. |
501 | Not Implemented | Fonctionnalité réclamée non supportée par le serveur. |
502 | Bad Gateway ou Proxy Error | En agissant en tant que serveur proxy ou passerelle, le serveur a reçu une réponse invalide depuis le serveur distant. |
503 | Service Unavailable | Service temporairement indisponible ou en maintenance. |
504 | Gateway Time-out | Temps d’attente d’une réponse d’un serveur à un serveur intermédiaire écoulé. |
505 | HTTP Version not supported | Version HTTP non gérée par le serveur. |
506 | Variant Also Negotiates | RFC 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é. |
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). |
509 | Bandwidth Limit Exceeded | Utilisé par de nombreux serveurs pour indiquer un dépassement de quota. |
510 | Not extended | RFC 2774 : La requête ne respecte pas la politique d’accès aux ressources HTTP étendues. |
511 | Network authentication required | RFC 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. |
Codes 5xx étendus au mandataire Cloudflare
Code | Message | Signification |
520 | Unknown Error | L’erreur 520 est utilisé en tant que réponse générique lorsque le serveur d’origine retourne un résultat imprévu. |
521 | Web Server Is Down | Le serveur a refusé la connexion depuis Cloudflare. |
522 | Connection Timed Out | Cloudflare n’a pas eu de retour avec le serveur d’origine dans les temps. |
523 | Origin Is Unreachable | Cloudflare 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. |
524 | A Timeout Occurred | Cloudflare 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. |
525 | SSL Handshake Failed | Cloudflare n’a pas pu négocier un SSL/TLS handshake avec le serveur d’origine. |
526 | Invalid SSL Certificate | Cloudflare n’a pas pu valider le certificat SSL présenté par le serveur d’origine. |
527 | Railgun Error | L’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. |
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