Dans l'archive, vous découvrirez un simple programme (en Python).
Executez-le:
python server.py
Lancez votre navigateur, connectez-vous alors à http://127.0.0.1:8080/.
Observez ce qu'il se passe, ainsi que les messages qui apparaissent dans la console.
Voici ce qui devrait apparaître:
> Request:
GET / HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:77.0) Gecko/20100101 Firefox/77.0
Accept: image/webp,*/*
Accept-Language: fr-FR
Accept-Encoding: gzip, deflate
Connection: keep-alive
> Response:
HTTP/1.1 200 OK
Content-type: text/html
18:39:26
Lorque vous changez de page, en vous rendant par exemple sur http://127.0.0.1:8080/test, la même réponse est fournie. Observez les différences dans la console.
Modifiez alors le code de manière à pouvoir naviguer entre plusieurs pages.
Sur l'une de vos pages, placez le code HTML suivant:
<form method="get">
Nombre 1: <input type="text" name="n1" /><br />
Nombre 2: <input type="text" name="n2" /><br />
<input type="submit" value="Additioner!" />
</form>
Exécutez le code et observez dans la barre d'adresse, ainsi que dans la console l'impact que les nombres que vous saisissez ont sur la requête.
Modifiez le code de façon à ce que la page en question affiche la somme des deux nombres envoyés par le formulaire.
Essayez de stocker les valeurs passées en GET
dans un dictionnaire {}
.
Essayez maintenant d'afficher une image à l'aide de votre application web.
Ne trichez pas! Votre image doit être hébergée sur votre application, et pas à l'extérieur. Par exemple, le code suivant:
<img src="/image.jpg" />
Devrait afficher une image de votre choix, à vous de bien écrire la réponse de manière à ce que le navigateur la comprenne.
En Python, il est possible de lire des fichiers de cette manière:
img = open('fichier', 'rb')
data = img.read()
img.close()
Changez la méthode du formulaire en POST:
<form method="post">
Et observez ce qu'il se passe.
Attention: le code d'origine répond à partir de la première ligne vide
reçue. Cependant, dans le cas d'une requête POST
, la requête contient
des données dont la longueur est précisée dans l'en-tête Content-Length
,
il faudra donc modifier ce comportement.
Modifiez ensuite votre code afin qu'il puisse répondre à la somme des deux
nombres en POST
et non en GET
.
Lorsqu'on demande une resource qui n'existe pas, faites en sorte que votre programme regarde si le fichier existe, et l'envoie au client
Vous pourrez intégrer quelques types mimes en vous basant sur l'extension du fichier
En utilisant les cookies, faites une page qui affiche un numéro qui s'incrémente à chaque requête.