Le protocole HTTP
L'acronyme HTTP signifie "Hypertext Transfert Protocol". Il a été inventé par Tim-Berner Lee dans les années 1990.
C'est le protocole le plus utilisé sur Internet.
Le but du protocole HTTP est de permettre un transfert de fichiers (essentiellement au format HTML) localisés grâce à une chaîne de caractères appelée URL entre un navigateur (le client) et un serveur Web.
Le navigateur envoie une requête HTTP au serveur qui la décode et renvoie une réponse HTTP au navigateur. Cette requête demande un document (une page HTML, une image, etc...).
Le serveur cherche les informations, peut être amené à interpréter les résultats et envoie la réponse. Cette réponse contient les entêtes du protocole HTTP et le contenu demandé.
Une requête HTTP est un ensemble de lignes envoyé au serveur par le navigateur. Elle comprend :
1) une ligne de requête : c'est une ligne précisant le type de document demandé, la méthode qui doit être appliquée, et la version du protocole utilisée. La ligne comprend trois éléments devant être séparés par un espace :
la méthode
l'URL
la version du protocole utilisé par le client (généralement HTTP/1.1)
2) les champs d'en-tête de la requête : c'est un ensemble de lignes facultatives permettant de donner des informations supplémentaires sur la requête et/ou le client (Navigateur, système d'exploitation, ...). Chacune de ces lignes est composée d'un nom qualifiant le type d'en-tête, suivi de deux points (:) et de la valeur de l'en-tête.
Voici un exemple d'en-tête de requête envoyé par un navigateur :

La commande GET sert à obtenir une ressource. C'est la requête la plus utilisée sur Internet. Il s'agit de la méthode qui doit être appliquée. La commande POST est une méthode qui permet d'envoyer le contenu d'un formulaire HTML.
La ligne suivante est un champs HTTP, toujours formatée de cette manière "NomChamps: Valeur".
Tout ceci constitue l'en-tête de la requête.
Une réponse HTTP est un ensemble de lignes envoyées au navigateur par le serveur. Elle comprend:
1) une ligne de statut précisant la version du protocole utilisé et l'état du traitement de la requête à l'aide d'un code et d'un texte explicatif. Cette ligne comprend trois éléments devant être séparés par un espace :
la version du protocole utilisé
le code de statut
la signification du code
2) les champs d'en-tête de la réponse : il s'agit d'un ensemble de lignes facultatives permettant de donner des informations supplémentaires sur la réponse et/ou le serveur. Chacune de ces lignes est composée d'un nom qualifiant le type d'en-tête, suivi de deux points (:) et de la valeur de l'en-tête
3) le corps de la réponse : il contient le document demandé.
Voici un exemple d'en-tête de réponse envoyé par un navigateur :

La première ligne de la réponse contient toujours le 'code' HTTP indiquant si la requête a réussi ou pas.
Puis, comme pour la réponse, on trouve les lignes des champs HTTP. Tout ceci constitue l'en-tête de la réponse.
Ensuite se trouve le corps de la réponse, qui dans le cas d'un GET d'un fichier HTML contient par exemple le code HTML de la page visée.






