Ressources HTTP : Champs d'en-tête et codes de retour
Par Méthylbro le jeudi 23 juillet 2009, 08:00 - Tutoriels - Lien permanent
Après avoir vu ensemble comment fonctionne le protocole HTTP au niveau de ses requêtes et de ses résultats ; et avant de concevoir pas à pas un petit client HTTP entièrement écrit en PHP nous allons faire un petit billet de ressources sur le protocole HTTP.
Dans ce billet j'ai tout simplement listé et classé l'ensemble des champs d'en-tête (de requête et de réponse) que vous pourrez trouvé le plus communément. Bien évidement il ne s'agit pas d'une liste exhaustive car de toute façon il est tout à fait possible pour n'importe qui d'utiliser des champs d'en-tête personnalisés. Pour ma part je laisse régulièrement une signature à mon travail en glissant un petit mot dans les champs de réponse.
J'y ai glissé également à nouveau un tableau très classique. Il s'agit de la liste des codes de retour HTTP (excluant les codes hérités de WebDav).
Les champs d'en-tête HTTP
| Nom du champ | Description |
|---|---|
| Accept | Type de contenu accepté par le navigateur (par exemple text/html, ce sont les codes MIME). |
| Content-Length | Longueur du corps de la requête |
| Content-Type | Type de contenu du corps de la requête (par exemple text/html). |
| Date | Date de début de transfert des données |
| Forwarded | Utilisé par les proxys entre le navigateur et le serveur |
| From | Permet de spécifier l'adresse e-mail du client |
| Referer | URL du lien à partir duquel la requête a été effectuée |
| If-Modified-Since | Dernière date de réception du contenu de la ressource |
| Host | Nom du serveur/domaine de destination |
| User-Agent | Chaîne donnant des informations sur le client, comme le nom et la version du navigateur, du système d'exploitation |
| Nom de l'en-tête | Description |
|---|---|
| Content-Encoding | Type de codage du corps de la réponse |
| Content-Language | Type de langage du corps de la réponse |
| Content-Length | Longueur du corps de la réponse |
| Content-Type | Type de contenu du corps de la réponse (par exemple text/html). |
| Date | Date de début de transfert des données |
| Expires | Date limite de consommation des données |
| Forwarded | Utilisé par les machines intermédiaires entre le browser et le serveur |
| Location | Redirection vers une nouvelle URL associée au document |
| Server | Caractéristiques du serveur ayant envoyé la réponse |
Les codes de retour HTTP
| Information | ||
|---|---|---|
| 100 | Continue | Attente de la suite de la requête |
| 101 | Switching Protocols | Acceptation du changement de protocole |
| Succès | ||
| 200 | OK | Requête traitée avec succès |
| 201 | Created | Requête traitée avec succès avec création d'un document |
| 202 | Accepted | Requête traitée mais sans garantie de résultat |
| 203 | Non-Authoritative Information | Information retourné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 requête a été transmise |
| Redirection | ||
| 300 | Multiple Choices | L'URI demandée se rapporte à plusieurs ressources |
| 301 | Moved Permanently | Document déplacé de façon permanente |
| 302 | Moved Temporarily | 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 | La requête doit être ré-adressée au proxy |
| 307 | Temporary Redirect | La requête doit être redirigée temporairement vers l'URI spécifiée |
| Erreur du client | ||
| 400 | Bad Request | La syntaxe de la requête est erronée |
| 401 | Unauthorized | Accès à la ressource refusé |
| 402 | Payment Required | Paiement requis pour accéder à la ressource (non utilisé) |
| 403 | Forbidden | Refus de traitement de la requête |
| 404 | Not Found | Document non trouvé |
| 405 | Method Not Allowed | Méthode de requête non autorisée |
| 406 | Not Acceptable | Toutes les réponses possibles seront refusées. |
| 407 | Proxy Authentication Required | Accès à la ressource autorisé par identification avec le proxy |
| 408 | Request Time-out | Temps d'attente d'une réponse du serveur écoulé |
| 409 | Conflict | La requête ne peut être traitée à l'état actuel |
| 410 | Gone | La ressource est indisponible 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ée 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 insatisfaisable |
| Erreur du serveur | ||
| 500 | Internal Server Error | Erreur interne du serveur |
| 501 | Not Implemented | Fonctionnalité réclamée non supportée par le serveur |
| 502 | Bad Gateway ou Proxy Error | Mauvaise réponse envoyée à un serveur intermédiaire par un autre serveur. |
| 503 | Service Unavailable | Service indisponible |
| 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 |
Commentaires