Architecture des réseaux

TD 5

Le protocole HTTP - Traitement des requêtes du côté serveur


Exercice 1 - Un simple serveur de fichier HTTP

Écrire un petit programme Java qui permet d'émuler un serveur HTTP très simple. Voici les fonctionnalités qui doivent être implantées par ce petit serveur:


Exercice 2 - Les messages d'erreur

Ajouter au serveur précédent la fonctionalité suivante: lorsqu'une ressource recherchée par un client n'est pas un fichier régulier, et que le serveur n'est pas en mesure de la retourner, renvoyer un message d'erreur 404 Not Found accompagné d'une page HTML expliquant poliment que la ressource n'est pas accessible.


Exercice 3 - Échange d'information grâce aux formulaires

En plus des services précédents, on veut maintenant que le serveur permette d'accéder à des ressources qui ne sont pas statiques, mais créées dynamiquement à partir des informations des clients.

Pour mettre en oeuvre ces fonctionnalités, on pourra écrire un fichier suscribe.html, accessible par les clients et leur offrant un formulaire comme celui-ci (adaptez le à votre goût si vous le souhaitez, le but étant d'utiliser quelques balises comme form, input, select, etc.) :

Formulaire
d'inscription

Les données recueillies par ce formulaire seront, dans un premier temps, envoyées avec la méthode GET à une URL choisie, par exemple /suscribe, relative au serveur. Lorsque ces données sont reçues par le serveur, elles doivent être stockées.

Les manières de stocker ces informations peuvent êtres diverses et variées, mais on pourra par exemple créer une instance d'une classe Membre, définie de sorte à pouvoir stocker les informations relatives à une inscription, et stocker cette instance dans un vecteur.

En revanche, il est important de rendre la gestion de ce service le plus modulaire possible (éviter de le coder en dur "if then else" dans le serveur), afin de pouvoir fournir d'autre services différents en utilisant le même serveur.


Exercice 4 - Extensions de services

À partir de ce serveur et des informations relatives à ce formulaire, on peut imaginer différentes extensions telles que.

  1. Renvoyer une confirmation d'inscription.
  2. Proposer la génération dynamique, correspondant à un URL offert aux clients, de l'ensemble des inscrits.
  3. Rendre la configuration du serveur et/ou les informations recueillies persistantes.
  4. Affecter un mot de passe aux clients, et l'exiger pour la consultation de certaines informations.


Etienne.Duris[at]univ-mlv.fr - © Université de Marne-La-Vallée - Mars 2000 - http://www-igm.univ-mlv.fr/~duris