Client et serveur
Le Web, c'est une conversation
Chaque fois que tu visites une page web, une conversation a lieu entre deux protagonistes : le client et le serveur. Cette conversation suit toujours le même schéma : le client demande, le serveur répond.
Analogie : C'est exactement comme au restaurant. Toi = le client. Le serveur (oui, c'est le même mot !) prend ta commande, va en cuisine, et revient avec le plat. La cuisine ne sort rien d'elle-même : elle attend qu'on lui demande quelque chose.
Le client : toi, ton navigateur
Le client, c'est l'appareil et le logiciel qui initient la demande. Dans le contexte du Web, c'est presque toujours ton navigateur (Chrome, Firefox, Safari…).
Mais un client peut aussi être :
- Une application mobile (Instagram, Spotify…)
- Un script automatisé (crawler, bot)
- Un autre serveur qui appelle une API
Ce qui définit un client : il initie la connexion et formule une requête.
Le serveur : la machine qui répond
Le serveur est un ordinateur (souvent dans un data center) qui attend des requêtes. Il tourne 24h/24, et dès qu'un client lui parle, il répond.
Un serveur, c'est physiquement une machine ordinaire — mais configurée pour :
- Être accessible depuis Internet (adresse IP publique)
- Tourner en permanence (haute disponibilité)
- Gérer des milliers de connexions simultanées
Ton ordinateur peut être un serveur ! Si tu installes un logiciel serveur web (comme Apache ou Nginx), d'autres machines peuvent se connecter à toi. C'est comme ça qu'on développe en local.
Le cycle requête / réponse
Voici ce qui se passe quand tu tapes https://monminilab.fr dans ton navigateur :
// Cycle complet d'une requête web
CLIENT (ton navigateur) SERVEUR (monminilab.fr)
1. Résolution DNS ──────────────────▶ "Quelle est l'IP de monminilab.fr ?"
◀────────────────── "C'est 104.21.42.100"
2. Connexion TCP ──────────────────▶ Handshake (poignée de main)
◀────────────────── Connexion établie ✓
3. Requête HTTP ───────────────────▶ GET / HTTP/1.1
Host: monminilab.fr
4. Réponse HTTP ◀─────────────────── HTTP/1.1 200 OK
Content-Type: text/html
[page HTML...]
5. Rendu ──── Le navigateur lit le HTML et affiche la page
Ce cycle complet prend généralement moins de 500 millisecondes. Parfois quelques dizaines de ms pour des serveurs proches de toi.
Un serveur, plusieurs clients simultanés
Un serveur web ne parle pas à un seul client à la fois. Il gère des milliers de connexions simultanées. Quand tu visites Google, des millions d'autres personnes font la même chose en même temps — et les serveurs de Google répondent à tout le monde.
// Un serveur, N clients en parallèle
Utilisateur A ──▶ ┌─────────────┐
Utilisateur B ──▶ │ Serveur │ ──▶ Traite chaque requête
Utilisateur C ──▶ │ web (ex: │ et répond en parallèle
Utilisateur D ──▶ │ Nginx) │
... ──▶ └─────────────┘
Les types de serveurs web courants
Client-serveur vs peer-to-peer
Le modèle client-serveur n'est pas le seul possible. Dans un réseau peer-to-peer (P2P), chaque machine est à la fois client et serveur. BitTorrent fonctionne comme ça : tu télécharges (client) et tu distribues (serveur) en même temps.
Le Web utilise principalement le modèle client-serveur — centralisé, prévisible, plus facile à sécuriser.
- Le client initie la requête (ton navigateur). Le serveur répond (machine dans un data center).
- Chaque visite de page = au moins une requête HTTP + une réponse HTTP.
- Ce cycle prend quelques dizaines à quelques centaines de millisecondes.
- Un serveur gère des milliers de connexions simultanées.
- Nginx et Apache sont les logiciels serveur web les plus courants.