HTTP s'attache à envoyer et à répondre à des requêtes.
Une requête sur Internet s'envoie avec un message qui contient simultanément l'en-tête (header
) et le corps du message (payload
). La séparation entre les deux est effectuée par une ligne vide.
Envoie d'une requête GET à l'adresse google.fr
$ curl -v --raw google.fr
Application du DNS sur google.fr
* Rebuilt URL to: google.fr/ * Trying 173.194.76.94... * TCP_NODELAY set * Connected to google.fr (173.194.76.94) port 80 (#0)
Requête envoyée par curl. On constate que une ligne vide en fin de l'envoie, c'est la ligne vide qui sépare l'en-tête et le corps de la requête. Ici, seul l'en-tête est nécessaire pour faire la demande. Les caractères >
sont ajoutées par curl
pour des raisons de lisibilité de l'en-tête.
> GET / HTTP/1.1 > Host: google.fr > User-Agent: curl/7.51.0 > Accept: */* >
Réponse envoyée par google.fr.
< HTTP/1.1 301 Moved Permanently < Location: http://www.google.fr/ < Content-Type: text/html; charset=UTF-8 < Date: Sat, 07 Jan 2017 14:09:50 GMT < Expires: Mon, 06 Feb 2017 14:09:50 GMT < Cache-Control: public, max-age=2592000 < Server: gws < Content-Length: 218 < X-XSS-Protection: 1; mode=block < X-Frame-Options: SAMEORIGIN < <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"> <TITLE>301 Moved</TITLE></HEAD><BODY> <H1>301 Moved</H1> The document has moved <A HREF="http://www.google.fr/">here</A>. </BODY></HTML>
Information de débogage de curl :
* Curl_http_done: called premature == 0 * Connection #0 to host google.fr left intact