Déploiement
Déploiement • Chapitre 5 : Introduction aux serveurs et à l'hébergement

Fonctionnement d'un serveur web

Comprenez la mécanique interne d'un serveur web : boucle d'écoute sur les ports réseau (80 HTTP, 443 HTTPS), cycle de vie d'une requête HTTP, négociation TLS et distribution des flux.

👂
Sockets & Ports

Écoute permanente des paquets TCP entrants sur les ports standardisés 80 et 443.

🤝
Négociation TLS

Échange de clés cryptographiques asynchrones avant le premier transfert de données.

⚡
Concurrence Asynchrone

Gestion de dizaines de milliers de connexions simultanées via une boucle d'événements (Event Loop).

📊
Journaux d'Accès

Traçabilité intégrale de chaque requête dans access.log et error.log.

serveur-status-inspection.sh
# 1. Vérifier quels processus écoutent sur les ports 80 et 443
$ sudo ss -tulpn | grep -E ':(80|443)'
tcp   LISTEN 0      511          0.0.0.0:80        0.0.0.0:*    users:(("nginx",pid=1240,fd=6))
tcp   LISTEN 0      511          0.0.0.0:443       0.0.0.0:*    users:(("nginx",pid=1240,fd=7))

# 2. Tester le temps de traitement interne et la latence
$ curl -I https://mon-serveur.com
HTTP/2 200 
server: nginx/1.24.0
date: Sun, 11 Oct 2026 12:45:00 GMT
content-type: text/html; charset=UTF-8
strict-transport-security: max-age=31536000

Guide Approfondi & Architecture Système

1. L'Analogie du Standard Téléphonique d'Entreprise

Pour bien comprendre ce qu'est un serveur web, imaginez un standard téléphonique géant :
  • L'adresse IP : C'est le numéro de téléphone direct de l'immeuble.
  • Le port (80 ou 443) : C'est le numéro de poste interne standard. Par convention internationale, le poste 80 gère le courrier simple non scellé (HTTP) et le poste 443 gère les courriers sous pli scellé et cadenassé (HTTPS).
  • Le processus serveur (Nginx / Apache) : C'est l'équipe de réceptionnistes ultra-rapides. Dès qu'un appel arrive, le réceptionniste prend la demande, vérifie l'identité, cherche le fichier dans le classeur de l'ordinateur, et le renvoie à l'interlocuteur.

2. Le Cycle de Vie d'une Requête Réseau

Lorsque le navigateur d'un visiteur demande une page :
  1. Résolution DNS : Le navigateur traduit le nom de domaine en adresse IPv4/IPv6.
  2. Poignée de main TCP (3-Way Handshake) : Établissement de la connexion physique fiable entre le client et le serveur (SYN, SYN-ACK, ACK).
  3. Poignée de main TLS (HTTPS) : Le serveur présente son certificat public et négocie une clé de session éphémère ultra-sécurisée.
  4. Traitement et Réponse : Le serveur web analyse les en-têtes (Request Headers), trouve la ressource statique ou délègue le calcul au backend via un socket Unix, puis expédie les octets de réponse avec un code de statut (ex. 200 OK).

3. Pourquoi un Serveur ne dort jamais : Daemons et Services Systemd

Contrairement à votre navigateur qui s'arrête dès que vous fermez la fenêtre, un serveur web s'exécute sous la forme d'un démon (daemon) géré par le superviseur de l'OS (systemd sous Ubuntu/Debian). Il est configuré pour redémarrer instantanément en cas de crash et pour se lancer automatiquement dès l'allumage physique de la machine.

Comparatif : Rôle d'un Serveur Web vs Serveur d'Application

CritèreServeur Web (Nginx, Apache)Serveur Applicatif (Node.js, PHP-FPM, Python)
Mission principaleRéception réseau, terminaison SSL, fichiers statiques, reverse proxyLogique métier, algorithmes, requêtes SQL, sessions
Vitesse sur assets statiquesExtrêmement véloce (géré au niveau du kernel sans interpréteur)Plus lent s'il doit servir des fichiers statiques directement
Gestion de la mémoireEmpreinte ultra-faible (quelques Mo de RAM)Dépend de l'application (50 Mo à plusieurs Go de RAM)
Exposition publique directeRecommandée (sécurité éprouvée et robuste)Déconseillée (à masquer derrière Nginx)