Loading s7crs_l08_http_client...

enib_small.png S7-CRS L08_HttpClient — Client HTTP/HTTPS

Les fichiers servant de support à cette expérimentation seront obtenus par la commande $ cp -r /home/TP/sujets/CRS_L08_HttpClient . depuis les salles de Labo de l'ENIB, ou par la commande $ sftp -P 55555 -r votre_identifiant@sftp.enib.fr:/home/TP/sujets/CRS_L08_HttpClient . depuis l'extérieur de l'ENIB.

Nous réutilisons ici nos connaissances en matière de client TCP dans le contexte du protocole HTTP (et HTTPS).
Il s'agit en effet d'un protocole applicatif très largement utilisé et reposant sur le protocole de transport TCP.
Comme dans toute architecture TCP nous distinguons les rôles client et serveur : cet exercice se focalise essentiellement sur le rôle client.
Il s'agira principalement :

La consultation de la documentation est très importante et fait partie intégrante du travail.
Pour ceci vous disposez des pages de manuel indiquées à chaque exercice ainsi que de ces documents de programmation réseau.
En particulier, le document Memo_HTTP.pdf devrait beaucoup vous guider puisqu'il décrit la structure des requêtes et des réponses HTTP.
Le fichier d'en-tête crsUtils.hpp doit également être consulté très régulièrement puisqu'il fournit, au delà de quelques fonctionnalités utilitaires, la mise à disposition dans une forme facilitée pour les étudiants (limitation des pointeurs, des conversions de types, utilisation de chaînes et vecteurs C++, contrôle des échecs...) des appels et fonctionnalités systèmes que nous utiliserons.

Vous êtes censés savoir refaire et réutiliser tous ces exercices lors des séances ultérieures ; n'hésitez donc pas à poser des questions lors de cette séance et à les refaire tout seul ensuite pour vous entraîner.

{1 #direct_http } Client HTTP simpliste
{2 #proxy_http } HTTP à travers un proxy
{3 #direct_https } Client HTTP/HTTPS
{4 #proxy_https } HTTPS à travers un proxy

Nous venons de découvrir les principes qui permettent d'obtenir des ressources de HTTP ou HTTPS avec ou sans l'usage d'un proxy.
Bien entendu, la structure d'un tel programme peut être utilisée dans le cadre d'applications très différentes qui cherchent juste à interagir depuis des sites distants pour lesquels les communications directes sur des ports TCP ou UDP quelconques ne sont pas autorisées (l'usage de HTTP et HTTPS est en général autorisé, éventuellement à travers un proxy).