La plupart des gens considèrent un serveur Web comme une boîte noire magique qui crée des pages à partir de rien. Ce n’est pas le cas. À la base, le travail est étonnamment banal. Un serveur Web récupère un fichier à partir d’un disque et le transmet à votre navigateur. C’est ça. Simple. Direct.
Voyons ce qui se passe lorsque vous tapez une URL dans la barre d’adresse. Imaginez que vous saisissiez « http://www.bygpub.com/books/tg2rw/author.htm ». Le serveur reçoit une demande pour le chemin spécifique /books/tg2rw/author.htm. Si vous pouviez jeter un œil à la configuration du serveur, vous verriez un répertoire racine défini lors de l’installation, quelque chose comme « c:\Mes documents\www ». Le serveur ne recherche pas /books/tg2rw/author.htm sur l’ensemble du disque dur. Il recherche ce chemin relatif à la racine. Il combine donc les deux : c:\My Documents\www + /books/tg2rw/author.htm. Il trouve le fichier. Il l’envoie. Fait.
Mais que se passe-t-il lorsque l’URL se termine par une barre oblique ? Comme « http://www.bygpub.com/books/tg2rw/ » ?
Le serveur comprend cela comme une demande de répertoire et non comme une demande de fichier. Il a besoin d’un fichier par défaut à servir. On ne devine pas au hasard. Il suit une hiérarchie stricte. Il recherche « index.html ». Si cela manque, il essaie index.htm. Si cela échoue, il vérifie « default.html ». Enfin, il essaie default.htm. La liste exacte dépend du logiciel serveur, mais la logique est cohérente. Le serveur convertit silencieusement l’URL du répertoire en URL de fichier, en ajoutant la première correspondance trouvée. Cette requête de répertoire devient donc « http://www.bygpub.com/books/tg2rw/index.htm ». Vous ne voyez jamais le changement de nom de fichier. Vous voyez juste le chargement de la page. Tous les autres fichiers de ce répertoire nécessitent que vous le nommiez explicitement. Il s’agit de la base de référence pour la gestion des fichiers statiques.
Au-delà des fichiers statiques : le rôle du CGI
Les fichiers statiques ne représentent que la moitié de l’histoire. La plupart des serveurs Web modernes gèrent également les fichiers dynamiques. Ils ne génèrent pas ces pages à la volée à partir de zéro ; ils transmettent la demande à un programme externe. Ce mécanisme est appelé Common Gateway Interface ou CGI.
Vous avez utilisé CGI d’innombrables fois sans vous en rendre compte. C’est le moteur derrière toute page Web qui change en fonction de votre contribution. Considérez ces exemples :
-
Livres d’or : Vous saisissez un message dans un formulaire HTML. Le serveur n’envoie pas seulement une page pré-écrite. Il exécute un script qui ajoute votre texte à une base de données ou à un fichier, puis génère une nouvelle page affichant votre entrée.
-
Recherches WHOIS : vous saisissez un nom de domaine dans un formulaire. La page que vous obtenez dépend entièrement du domaine que vous avez entré. Le serveur ne sert pas de fichier statique ; il demande à un programme de récupérer des données en direct.
-
Moteurs de recherche : vous saisissez des mots-clés. Le serveur exécute une requête, analyse les index et crée dynamiquement une page de résultats adaptée à votre recherche.
Toutes ces interactions reposent sur CGI. Le serveur Web agit comme un répartiteur, transmettant les données du formulaire de l’utilisateur à un programme, puis renvoyant la sortie du programme à votre navigateur. Cette séparation permet aux serveurs de gérer une logique complexe sans s’enliser dans le



























