Serveur HTTP en Python

Nous allons, sur une machine de la salle, lancer un programme Python qui remplira la fonction de serveur HTTP.

Ainsi, depuis n’importe quelle machine du réseau, à partir de n’importe quel navigateur web, nous pourrons afficher une page Web.

 

Page HTML

Créer un fichier ma_page.html  avec le contenu au format HTML suivant :

<html>
    <head>
        <title>Python HTTP</title>
    </head>
    <body>
        <h1>Python http.server</h1>
        <p>Bravo ! Le serveur HTTP fonctionne !</p>
    </body>
</html>

 

Programme Python

Pour créer un serveur HTTP dans Python, il faut importer deux modules :

  • http.server  qui permet de gérer les requêtes HTTP
  • socketserver qui permet de créer un serveur TCP

import http.server
import socketserver

On décide du numéro de port écouté par notre serveur :

PORT = 8080

On choisit le gestionnaire (handler) pour les requêtes HTTP :

Handler = http.server.SimpleHTTPRequestHandler

On crée le serveur TCP (on utilise ici un bloc with , pour faciliter sa gestion – pas besoin de le fermer) :

with socketserver.TCPServer(("", PORT), Handler) as tcp_server:

Dans le bloc with, on démarre le serveur :

   tcp_server.serve_forever()

 

 

Activité
  • Créer un fichier Python serveur_http.py réalisant cette fonction serveur.

Attention, les deux fichiers doivent être dans le même dossier.

 

Communication

A l’aide du navigateur saisir dans la barre d’adresse l’URL suivant :

s62-vpi.tlpu664.etab.local:8080/ma_page.html

Activité
  • Identifier dans l’URL :
    • le nom du protocole
    • le nom d’hôte
    • le port
    • la ressources
  • A l’aide du logiciel Wireshark, depuis le poste client, identifier les trames HTTP échangées pour afficher la page.

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

code