Aller au contenu

Serveur web

Infrastructure

Logiciel (et, par extension, machine qui l'héberge) qui écoute les requêtes HTTP ou HTTPS des clients et leur renvoie des ressources : pages, fichiers statiques, réponses d'API. Il sert le contenu lui-même ou relaie la demande vers une application placée derrière lui.

Diagramme de séquence entre quatre acteurs : Navigateur, Serveur web, Serveur d'applications et Base de données. 1, le navigateur et le serveur web font la négociation TLS, et le serveur présente son certificat. 2, le navigateur envoie la requête HTTPS GET /page. Si un fichier statique est présent, le serveur web lit le contenu sur le disque et le renvoie au navigateur (3). Si la route est dynamique, il relaie la requête au serveur d'applications (4). Celui-ci lit les données dans la base de données (5), puis renvoie au serveur web la réponse générée (6). Enfin, le serveur web envoie au navigateur la réponse HTTP avec son code d'état (7).

Statique ou dynamique : Pour un fichier présent sur le disque (HTML, image, script), le serveur web le lit et le renvoie tel quel. Pour une page calculée à la volée, il transmet la requête à un serveur d'applications (via proxy inverse ou FastCGI) et se contente de relayer la réponse.

Terminaison TLS : Il porte en général le certificat, négocie le chiffrement et déchiffre le trafic HTTPS avant de le traiter ou de le transmettre. Derrière lui, la requête repart souvent en clair vers l'application : le chiffrement s'arrête donc exactement là où commence la confiance accordée au réseau interne, laquelle ne se vérifie jamais.

Logiciels courants : NGINX, Apache httpd, Caddy et IIS dominent le terrain. Ils écoutent par convention sur le port 80 (HTTP) et le port 443 (HTTPS), et la page d'accueil qui félicite l'administrateur d'une installation réussie reste le signe le plus fiable qu'elle n'est pas terminée.

À ne pas confondre : Le serveur web gère les connexions, le routage des URL, la compression et le cache. La logique métier vit dans le serveur d'applications, même quand les deux tournent dans le même processus.

Ce qui arrive si on s'en passe

Sans serveur web en écoute, aucune requête HTTP ou HTTPS n'obtient de réponse : la connexion vers le port 80 ou 443 est refusée ou expire, les pages, fichiers statiques et réponses d'API deviennent inaccessibles, et aucun journal d'accès ne consigne ces tentatives. Le contournement habituel consiste à exposer directement l'application. Elle doit alors assurer seule ce que le serveur placé devant elle prend normalement en charge : terminaison TLS, limites de taille des requêtes, délais d'attente face aux clients lents, service des fichiers statiques et journalisation des accès. Les serveurs de développement intégrés aux frameworks (Flask, Django) sont explicitement documentés comme inadaptés à la production. Les placer en première ligne revient à les confronter à des connexions qu'ils n'ont pas été conçus pour filtrer.

Explication de la marmotte

Quand tu tapes l'adresse d'un site, ton téléphone envoie une demande à un ordinateur allumé jour et nuit, quelque part dans le monde. Sur cet ordinateur tourne un programme qui joue le rôle d'un guichetier de bibliothèque. Il reçoit ta demande et va chercher la bonne page dans ses rayons. Si la page dépend de toi (ton profil, ton panier), il demande à un collègue de la préparer. Ensuite, il te la renvoie, et l'application qui t'affiche les sites n'a plus qu'à la montrer à l'écran. Des milliers de personnes peuvent demander en même temps : le guichetier les sert toutes, très vite, sans jamais prendre de pause.

Où ce terme est utilisé

← Tout le glossaire