2. La requête HTTP ===================== * La requête HTTP (du client vers le serveur) comprend 3 éléments : * Une ligne de requête contenant la méthode, l’URL et la version du protocole * Les champs d’en-tête de la requête : lignes facultatives pour donner des infos supplémentaires (navigateur, OS, IP…) * Le corps de la requête: lignes optionnelles pour un envoi de données par la méthode POST Une requête HTTP est un ensemble de lignes envoyé au serveur par le navigateur. Elle comprend : * **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.0) * **Les champs d'en-tête de la requête:** il s'agit d'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 * **Le corps de la requête:** c'est un ensemble de lignes optionnelles devant être séparées des lignes précédentes par une ligne vide et permettant par exemple un envoi de données par une commande POST lors de l'envoi de données au serveur par un formulaire * Syntaxe : | ↲ | [ : ↲] | ... | [ : ↲] | ↲ | [CORPS DE LA REQUETE] | **GET /index.html HTTP/1.0** | **Host: formatux.be** | **Content-Type: text/html** | **User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)** **Voici la liste des différentes « méthodes » existantes :** * GET : requête de la ressource située à l'URL spécifiée au travers de l'URL * HEAD : requête de l'en-tête de la ressource située à l'URL spécifiée * POST : envoi de données au programme situé à l'URL spécifiée * PUT : envoi de données à l'URL spécifiée pour modification * DELETE : suppression de la ressource située à l'URL spécifiée **Voici la liste des principales en-têtes existantes :** * Accept : Type de contenu accepté par le browser (par exemple text/html). Voir types MIME * Accept-Charset : Jeu de caractères attendu par le browser * Accept-Encoding : Codage de données accepté par le browser * Accept-Language : Langage attendu par le browser (anglais par défaut) * Authorization : Identification du browser auprès du serveur * Content-Encoding : Type de codage du corps de la requête * Content-Language : Type de langage du corps de la requête * Content-Length : Longueur du corps de la requête * Content-Type : Type de contenu du corps de la requête (par exemple text/html). Voir types MIME