Python: création d'un serveur http
Créer ton premier serveur web en Python 🌐🐍
Tu vas apprendre à lancer un vrai serveur web sur ton ordinateur,
avec Python, et à y accéder depuis ton navigateur via
http://localhost:8888/.
Public : 11 → 18 ans
Ressource prof : client/serveur + réseau local
0. Avant de commencer : c’est quoi un serveur web ?
Quand tu tapes une adresse dans ton navigateur (par ex. https://www.example.com),
ton ordinateur envoie une demande à un autre ordinateur : le serveur.
Ce serveur renvoie des fichiers (HTML, images, CSS, JS…) que ton navigateur affiche.
- Client : ton navigateur (Chrome, Firefox…).
- Serveur : un programme qui attend les demandes et renvoie des réponses.
- Protocole : le “langage” de communication. Ici : HTTP.
localhost signifie “moi-même / mon ordinateur”.
1. Quand tu ouvres YouTube dans ton navigateur, ton navigateur est :
1. Créer la page web à servir (HTML)
On commence par écrire un petit fichier HTML que le serveur Python enverra au navigateur.
Étape 1 – Créer le fichier index.html
- Crée un nouveau dossier sur ton ordinateur, par exemple : mon_serveur_python.
- Dans ce dossier, crée un fichier nommé index.html.
- Copie-colle le code ci-dessous dans ce fichier :
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Mon premier serveur Python</title>
<style>
body {
font-family: Arial, sans-serif;
background: #f5f5f5;
margin: 0;
padding: 40px;
text-align: center;
}
h1 { color: #1a237e; }
p { color: #424242; }
.badge {
display: inline-block;
margin-top: 10px;
padding: 6px 12px;
border-radius: 999px;
background: #e8eaf6;
color: #1a237e;
}
</style>
</head>
<body>
<h1>Hello depuis mon serveur Python !</h1>
<p>Si tu vois ce message dans ton navigateur, ton serveur fonctionne 🎉</p>
<div class="badge">Servi par Python sur http://localhost:8888/</div>
</body>
</html>
- Change le texte du
<h1>(par exemple : “Serveur de Léa” ou “Serveur de Maxime”). - Ajoute une ligne en plus avec ton langage préféré (Scratch, Python, JS…).
- Pour les plus avancés : ajoute une image avec
<img>.
2. Lancer un serveur web ultra-simple avec Python
Python contient déjà un mini-serveur web. Pas besoin d’installer autre chose !
On va le démarrer dans le dossier où se trouve index.html.
Étape 2 – Ouvrir un terminal / invite de commandes
Windows
Appuie sur Win + R, tape cmd, puis Entrée.
macOS
Ouvre l’application Terminal (via Spotlight).
Linux
Ouvre ton terminal habituel.
Étape 3 – Aller dans le dossier du projet
Dans ton terminal, tape par exemple :
cd chemin/vers/mon_serveur_python
Remplace chemin/vers/mon_serveur_python par le vrai chemin sur ta machine.
Étape 4 – Démarrer le serveur sur le port 8888
Dans le dossier où se trouve index.html, tape la commande suivante :
python -m http.server 8888
Ou si ta machine utilise python3 :
python3 -m http.server 8888-m http.server dit à Python : “lance le module de serveur web simple”.
8888 est le port utilisé (une sorte de numéro de porte sur ton ordinateur).
- Arrête le serveur avec Ctrl + C dans le terminal.
- Relance la commande en utilisant le port
8000à la place de8888. - Dans ton navigateur, essaye
http://localhost:8000/.
3. Tester dans le navigateur : http://localhost:8888/
Étape 5 – Ouvrir le navigateur
- Ouvre ton navigateur (Chrome, Firefox, Edge, …).
- Dans la barre d’adresse, tape :
http://localhost:8888/ - Valide avec Entrée.
Si tout va bien, tu dois voir ta page index.html s’afficher. Ton serveur Python vient de te l’envoyer !
- Laisse le serveur tourner dans le terminal.
- Modifie le texte dans
index.html(par ex. change la couleur, le titre…). - Enregistre le fichier puis rafraîchis la page dans le navigateur (touche F5).
- Observe : la nouvelle version est servie automatiquement.
4. Variante : écrire ton propre fichier serveur.py
La commande python -m http.server est très pratique,
mais on peut aussi écrire un petit script Python personnalisé.
Étape 6 – Créer serveur.py
- Dans le même dossier que
index.html, crée un fichier serveur.py. - Copie-colle ce code dedans :
from http.server import SimpleHTTPRequestHandler
from socketserver import TCPServer
PORT = 8888
# Handler par défaut : sert les fichiers du dossier courant
handler = SimpleHTTPRequestHandler
with TCPServer(("", PORT), handler) as httpd:
print(f"Serveur lancé sur http://localhost:{PORT}/")
try:
httpd.serve_forever()
except KeyboardInterrupt:
print("\nArrêt du serveur...")
httpd.server_close()
Puis, dans le terminal (dans le bon dossier) :
python serveur.py- Change la valeur de
PORT(par ex.PORT = 9000). - Relance le serveur et teste
http://localhost:9000/. - Explique la différence entre l’ancienne adresse et la nouvelle.
5. Pour aller plus loin (idées pour profs & curieux)
- Faire servir plusieurs fichiers :
about.html,contact.html, etc. - Ajouter une feuille de style externe
styles.csset la faire servir par le même serveur. - Tester l’accès depuis un autre ordinateur du même réseau local (en utilisant l’adresse IP au lieu de
localhost, sous la supervision d’un adulte ou de l’enseignant). - Introduire ensuite un mini-framework web (Flask, FastAPI…) pour générer des pages dynamiques (pour les 15–18 ans).
- Expliquer les codes HTTP (200, 404…) en modifiant légèrement le handler.
Tu viens de mettre en place un vrai serveur web avec Python. Ce que tu viens de faire est la base de ce qui se passe derrière des millions de sites sur Internet. 🚀
Commentaires
Enregistrer un commentaire