I – Objectif
Ce document décrit la mise en place d'un petit serveur web HTTP avec Python, sans installation de logiciel supplémentaire. Cette méthode permet de partager rapidement des fichiers ou de tester un site web statique depuis le répertoire courant.
II – Prérequis
● Python 3 installé sur la machine
● Firewall ouvert sur le port choisi (ex: 8000/TCP)
● Terminal avec accès au répertoire à partager
III – Procédure
1) Utiliser le répertoire courant comme site web
Se placer dans le répertoire à partager, puis lancer le serveur :
$ cd /chemin/vers/le/dossier
$ python3 -m http.server
Par défaut, le serveur écoute sur le port 8000 et expose le contenu du répertoire courant.
Accéder au serveur depuis un navigateur :
http://localhost:8000
2) Spécifier un port d'écoute
Il est possible de définir un port personnalisé en le passant en argument :
$ python3 -m http.server [PORT]
Exemple sur le port 9090 :
$ python3 -m http.server 9080
3) Écouter sur une adresse IP spécifique
Par défaut, le serveur écoute sur toutes les interfaces réseau. Pour le restreindre à une adresse IP précise de la machine, utiliser l'option --bind :
$ python3 -m http.server 8000 --bind 192.168.50.100
Le serveur sera alors accessible uniquement via cette adresse :
http://192.168.50.100:8000
4) Servir un dossier spécifique
Pour exposer un répertoire différent du répertoire courant, utiliser l'option --directory :
$ python3 -m http.server 8000 --directory /home/kyosh1ro/partage
Le contenu du dossier /home/kyosh1ro/partage sera servi sans avoir à s'y déplacer au préalable.
5) Combinaison des options
Les options peuvent être combinées :
$ python3 -m http.server 8000 --bind 192.168.50.100 --directory /home/kyosh1ro/partage
• Port d'écoute : 8000
• Interface réseau : 192.168.50.100 uniquement
• Dossier exposé : /home/kyosh1ro/partage
6) Arrêter le serveur
Le serveur tourne en avant-plan dans le terminal. Pour l'arrêter :
Ctrl + C
IV – Conclusion
Le module http.server de Python permet de démarrer un serveur web en une seule commande, sans configuration ni installation supplémentaire. Il est idéal pour un partage de fichiers rapide sur un réseau local ou pour tester des pages HTML statiques.
Ce serveur n'est pas conçu pour un usage en production. Il ne gère pas le chiffrement (HTTPS), l'authentification, ni les performances à grande échelle.