Le projet sera fait en binôme et rendu par mail avant le 15/12/2011 à minuit (soit 1 minute après le 14 décembre 23h59) pour être présenté en TP le jour même. Un petit rapport expliquant votre approche vous sera demandé.
Le but est de réaliser un mini serveur Web. Pour cela vous allez implémenter une partie du protocole HTTP de la RFC2616.
Dans cette version allégée, nous allons implémenter que l'instruction GET.
Le serveur web prendra en argument un répertoire et le considèrera comme racine.
Exemple si le répertoire est ”~/serveur” et que la page demandée est ”/toto/fo.html” le serveur donnera le fichier ”~/serveur/toto/fo.html”.
Si la page demandée est un répertoire il donnera le fichier “index.html” contenu dans celui-ci.
Votre serveur Web devra envoyer les bons codes de retour et le bon type mime du fichier.
Vous pouvez utiliser ou fork ou select. Mais pour fork, éliminer correctement les zombies (ie: sigchld).
Votre serveur devra aussi implémenter le fonction “keep-alive”.
Le but ici est de réaliser un Wget allégé que nous allons appeler lwget.
Ce client devra juste récupérer la donnée, dont l'URI est fourni en argument.
Attention il devra suivre les redirections (code 3XX).
Si vous avez du temps. Voici quelques idées pour améliorer votre projet.