Travaux sur Machine de aci
2. L’envoi de formulaire Web

Cette séance poursuit celle en travaux dirigés qui a analysé un formulaire Web et s’est terminée par la construction d’une structure de données décrivant la requête à construire. Il s’agit maintenant de transformer l’analyseur en un client HTTP, fabriquant effectivement la requête HTTP, l’envoyant à un serveur et en analysant la réponse.



1 Ecriture du test

Le texte du présent problème est disponible à une URL muni d’un paramètre. Construire une page HTML se présentant comme un formulaire permettant de saisir la valeur de ce paramètre. Le champ de saisie sera préalablement initialisé à la valeur présente dans l’URL mentionnée. L’envoi du formulaire, en méthode GET, sera provoqué par le simple appui de la touche entée.

Vérifier que le programme mis au point en travaux dirigés produit bien la requête demandée à partir de votre formulaire.


Obtenir un formulaire de soumission de comptes rendus

2 Connexion

En vous inspirant du client POP vu lors de la première séance de travaux sur machine, écrire une fonction connect_client recevant en argument le nom d’un serveur et un numéro de port et y tentant une connexion. Elle retourne la socket sur lequel s’effectuera le dialogue, ou termine le programme si la connexion est impossible.

Attention : si votre configuration de travail passe par un proxy, il faudra ouvrir la connexion avec lui. Au bâtiment 31, le proxy est cafard.infop6.jussieu.fr sur le port 3128.


Obtenir un formulaire de soumission de comptes rendus

3 Envoi

Définir une nouvelle version de la fonction CONSTRUIRE_REQUETE, appelée à la fin de la fonction MAIN, afin qu’elle établisse la connexion avec le serveur indiqué dans le test, lui envoie la requête GET demandée, et émet dans le flux de sortie l’intégralité de la requête.

Attention : si votre configuration passe par un proxy, il faudra utiliser la syntaxe : GET http://serveur/ url  HTTP/1.0


Obtenir un formulaire de soumission de comptes rendus

4 Encodage

Sur le site de la formation, figure un formulaire en méthode POST : la page d’accès à l’espace privé. Demandez cette page sous votre navigateur et sauvez la pour en faire votre deuxième test. Le premier problème rencontré est qu’un des paramètres a une valeur contenant des caractères spéciaux. Réécrire la fonction précédente afin qu’elle remplace tout caractère non alphanumérique dans une valeur par le signe % suivi du code ASCII en hexadécimal du caractère considéré.


Obtenir un formulaire de soumission de comptes rendus

5 Méthode POST

En méthode POST et ENCTYPE par défaut, les paramètres sont envoyés non pas dans l’URL mais dans le flux d’entrée, avec un en-tête Content-Length. Changer à nouveau la fonction précédente afin qu’elle sache envoyer une requête en méthode POST.


Obtenir un formulaire de soumission de comptes rendus

logo-spip E. Saint-James & F. Kordon - Master Informatique - UPMC Valid XHTML 1.0!
Calculé le 21 janvier 2021 à 19h35min