=====Introduction=====
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.
=====Exemple=====
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
<
301 Moved
301 Moved
The document has moved
here.
Information de débogage de curl :
* Curl_http_done: called premature == 0
* Connection #0 to host google.fr left intact
=====HTTP status=====
^Code^Domaine de validité^
|1xx|Information|
|2xx|Succès|
|3xx|Redirection|
|4xx|Erreur client|
|5xx|Erreur serveur|
Voir aussi [[https://http.cat|Status]], {{ doc:web:http:cat.zip |Archive}}