1. Serveur Web Python intégré
Le langage Python prend en charge un serveur Web prêt à l'emploi et d'un usage très facile. Vous pouvez démarrer un serveur Web avec une seule ligne.
Mais vous pouvez également créer un serveur Web personnalisé doté de fonctionnalités uniques. Dans cet tutoriel, vous allez apprendre comment faire cela.
Le serveur Web de cet exemple est accessible uniquement sur votre réseau local. Il peut s'agir de localhost ou d'un autre hôte réseau. Vous pouvez le servir à travers l'emplacement avec un vpn.
Pour démarrer un serveur Web sous Windows, lancer la commande cmd du système Windows et exécutez la commande ci-dessous :
1 |
python -m http.server |
Pour le système linux:
1 |
python3 -m http.server |
Cela ouvrira un serveur Web sur le port 8080. Vous pouvez ensuite ouvrir votre navigateur à l'adresse http://127.0.0.1:8080/
Le serveur dans ce cas pointe directement vers le répertoire d'utilisateur Windows en cours et si on souhaite pointer le serveur vers un autre répertoire, il suffit de naviguer à l'aide la commande cd ( change directory) et lancer ensuite la commande :
1 |
python -m http.server |
2. Serveur web personnalisé à l'aide du Protocol http
Pour créer un serveur Web personnalisé, nous devons utiliser le protocole HTTP.
De par sa conception, le protocole http a une requête "get" qui renvoie un fichier sur le serveur. Si le fichier est trouvé, il renverra 200.
Le serveur démarrera au port choisi par exemple 8080 et acceptera les requêtes du navigateur Web par défaut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
from http.server import BaseHTTPRequestHandler, HTTPServer import time hostName = "127.0.0.1" serverPort = 8080 class MyServer(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write(bytes("<html><head><title>My Web Server</title></head>", "utf-8")) self.wfile.write(bytes("<p>Request: %s</p>" % self.path, "utf-8")) self.wfile.write(bytes("<body>", "utf-8")) self.wfile.write(bytes("<p>This my web server</p>", "utf-8")) self.wfile.write(bytes("</body></html>", "utf-8")) if __name__ == "__main__": webServer = HTTPServer((hostName, serverPort), MyServer) print("Server started at http://%s:%s" % (hostName, serverPort)) try: webServer.serve_forever() except KeyboardInterrupt: pass webServer.server_close() print("Server stopped.") |
Après exécution du script le serveur sera accessible via l'adresse: http://127.0.0.1:8080
On peut aussi envoyer une requête, en tapant par exemple: http://127.0.0.1:8080/my_request sur le navigateur et on obtient:
Younes Derfoufi
CRMEF OUJDA