Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sde2:teme:tema_fr_4_rust [2022/05/11 16:00]
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 144: Line 144:
 Le résultat de l'​exécution correspond à ce que le script a écrit à l'​écran (indice : utilisez un pipe) Le résultat de l'​exécution correspond à ce que le script a écrit à l'​écran (indice : utilisez un pipe)
 </​note>​ </​note>​
 +
 +==== Variables ====
 +
 +Lorsque le script est exécuté, tous les en-têtes HTTP reçus du client sont envoyés en tant que variables d'​environnement au script (astuce : utilisez execve).
 +
 +Le script recevra deux variables d'​environnement supplémentaires : Method et Path. Method a la valeur GET ou POST et Path a la valeur du chemin demandé.
 +
 +==== Query String ====
 +
 +Le moment de lire sur la définition de la [[https://​en.wikipedia.org/​wiki/​Query_string|query string]].
 +
 +Chaque variable de query string doit être envoyée au script en tant que variable d'​environnement au format Query_title=value.
  
 ==== Demande HTTP ==== ==== Demande HTTP ====
Line 186: 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>​
sde2/teme/tema_fr_4_rust.1652274031.txt.gz · Last modified: 2022/05/11 16:00 by alexandru.radovici
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0