TD : HTTP

TD : HTTP

PDF : pour impression #

Analyser une requête HTTP #

Voici l’extrait d’une requête HTTP obtenue sur le site httpie

$ http -v GET https.qkzk.xyz
GET / HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: qkzk.xyz
User-Agent: HTTPie/2.0.0
  1. Quelle est la méthode employée par la requête HTTP ? Quelle URL est demandée ?

  2. Complétons ensemble le tableau suivant :

Paramètre Contenu Rôle
Host \hspace{5cm} $\hspace{5cm}$
User-Agent
Accept
Accept-Encoding
Connection

Voici maintenant un extrait de la réponse du serveur :

HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Age: 0
Cache-Control: max-age=600
Connection: keep-alive
Content-Encoding: gzip
Content-Length: 836
Content-Type: text/html; charset=utf-8
Date: Wed, 26 May 2021 05:31:12 GMT
ETag: W/"60addaf4-71c"
Last-Modified: Wed, 26 May 2021 05:21:56 GMT
Server: GitHub.com
Vary: Accept-Encoding
Via: 1.1 varnish
X-Cache: MISS
X-Cache-Hits: 0
X-Fastly-Request-ID: 030a81aee4cd0d99f3de1a85e7c5083bc72ee960
X-GitHub-Request-Id: AAD4:4DE7:179655B:2171F65:60ADDCDF
X-Served-By: cache-ewr18171-EWR
X-Timer: S1622007073.955723,VS0,VE13
expires: Wed, 26 May 2021 05:40:07 GMT
x-proxy-cache: MISS

<!DOCTYPE html>
<html lang="en">
<head>
  <meta name="generator" content="Hugo 0.83.1" />
  <meta http-equiv="refresh" content="0; URL=/docs" />
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>
...
</html>
  1. Quelle est la version du protocole http ?

  2. Complétons ensemble le tableau suivant :

    Paramètre Contenu Rôle
    Code réponse $\hspace{5cm}$ $\hspace{5cm}$
    content-type
    Content-Encoding
    Date
    Server
  3. Le code 404 est un code d’erreur. Modifier la requête initiale afin de générer un tel code d’erreur.

GET et POST #

La requête suivante peut être lue dans la barre d’adresse d’un navigateur web, après avoir cliqué sur le bouton envoyer d’un formulaire.

http://localhost/cible.html?prenom=Lola?Parfum1=Fraise?Parfum2=Fraise?Parfum3=Chocolat
  1. S’agit-il d’une requête GET ou POST ? Justifier.
  2. Identifier les paramètres envoyés par la requête, ainsi que les valeurs transmises correspondantes.
  3. Que penser de la confidentialité des paramètres transmis dans la requête ?