This shows you the differences between two versions of the page.
sde2:teme:tema_fr_4_rust [2022/05/11 16:18] alexandru.radovici |
sde2:teme:tema_fr_4_rust [2022/05/23 13:36] (current) alexandru.radovici |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Devoir 4 - Serveur web ====== | + | ====== Devoir 4 - Rustywebserver ====== |
Le but de ce devoir est de créer un serveur Web qui doit servir des fichiers et exécuter des scripts. | Le but de ce devoir est de créer un serveur Web qui doit servir des fichiers et exécuter des scripts. | ||
Line 32: | Line 32: | ||
- | Si vous avez des questions concernant le devoir, posez-les en publiant un //issue// sur le github [[https://github.com/UPB-FILS-SdE2/questions]] avec le format // [busybox] <le titre de votre question> //. Vous aurez besoin d'un compte github pour publier des questions. | + | Si vous avez des questions concernant le devoir, posez-les en publiant un //issue// sur le github [[https://github.com/UPB-FILS-SdE2/questions]] avec le format // [webserver] <le titre de votre question> //. Vous aurez besoin d'un compte github pour publier des questions. |
<note warning> | <note warning> | ||
Line 45: | Line 45: | ||
<code bash> | <code bash> | ||
- | rustwebserver ROOT_FOLDER | + | rustwebserver PORT ROOT_FOLDER |
</code> | </code> | ||
Line 198: | Line 198: | ||
</note> | </note> | ||
+ | ===== Log ===== | ||
+ | Au démarrage, le serveur imprimera ce qui suit: | ||
+ | <code> | ||
+ | Root folder: <ansolute path to root folder> | ||
+ | Server listening on 0.0.0.0:PORT | ||
+ | </code> | ||
+ | |||
+ | Pour chaque requête, le serveur imprimera une ligne: | ||
+ | <code> | ||
+ | $Request request_source_ip_address $Path -> status_code (status_text) | ||
+ | </code> | ||
+ | |||
+ | ===== Bonus ===== | ||
+ | |||
+ | Mettre en œuvre la liste des dossiers pour le serveur Web. Si le chemin demandé est un dossier, générez une réponse html au format suivant. | ||
+ | |||
+ | <code html> | ||
+ | <html> | ||
+ | <h1>$Request</h1> | ||
+ | <ul> | ||
+ | <li><a href="/..">..</a></li> | ||
+ | <li><a href="/file1">file1</a></li> | ||
+ | <li><a href="/file2">file2</a></li> | ||
+ | ... | ||
+ | </ul> | ||
+ | </html> | ||
+ | </code> |