Protocole applicatif HTTP :
Constitution de la trace
On observe un échange de trames reposant sur ETHERNET-IP-TCP et sur ETHERNET-IP-TCP-HTTP
Au niveau du serveur, le port employé est le port 80 (le port par defaut pour un serveur http)
Pourquoi cet échange?
Un souci de configuration des pare-feux + switch , dû à la topologie spécifique qui permet le port mirroring et surtout le fait que le switch 'route'(cela empechait des clients extérieurs à ENT2 d'accéder au site WEB de ent2). Nous avons été contraint, pour faire une trace de bout en bout de la plateforme de déporter (avec ftp) le site internet d'ENT2 dans ENT1 sur la machine 10.10.1.1
Au niveau de la machine 10.40.5.2, on ouvre un terminal et on tape
firefox 10.10.1.1 &
On aurait eu un résultat quasi équivalent avec la commande
wget 10.10.1.1
=> Quasi équivalent car certains champs ne vaudraient alors pas firefox mais wget :-)
L'échange est assez conséquent, il peut être utile d'utiliser le filtre d'affichage pour ne faire apparaitre que les requêtes HTTP et visualiser le telechargement de la page séparemment.
Pour faire ceci, il suffit de taper comme filtre d'affichage:
http.request==1 (1 signifie true)
Contexte
Nous avons à faire à un serveur HTTP version 1.1, un client souhaite télécharger la page d'accueil de celui ci.
Echange proprement dit
- Négociations..:
Une requête HTTP du client est d'abord envoyée au serveur informant du navigateur internet employé par le client, le nom et la version de son système d'exploitation, les formats de données accéptés, la langue, l'encodage supporté, la date de la dernière version du site dans le cache de la machine cliente (si la version du site à changer, la télécharger: optimisation)
Le serveur répond que le site n'a pas été modifié et informe de la nature et version de son système d'exploitation.
- Télechargement des données:
Ensuite le client émet un ensemble de requête HTTP de type GET afin de télécharger la page ainsi que tous les objets qui la constitue ..
Le serveur répond à chacune de ces requêtes un code 304 signifiant que la page n'a pas été modifiée.
Ceux-ci sont effectué de manière parallèle étant donné que la version de HTTP utilisée est la 1.1 jusqu'au téléchargement total de la page..
Pourquoi le client demande cette page?
En effet, pourquoi cet échange alors que le serveur informe le client que la version qu'il dispose dans son cache est à jour?...
On avait besoin de cette page, alors on a demandé un rafraichissement explicite de la page...
Pour plus s'information sur la création d'un serveur HTTP apache sous Linux visitez le tutorial bientot présent sur la page de Entreprise2 :-)