Vous n’avez pas besoin d’être un sorcier pour comprendre comment Internet générait du contenu à la volée. Avant que les frameworks modernes et les applications à page unique utilisant beaucoup de JavaScript ne prennent le relais, l’épine dorsale du contenu Web dynamique était CGI. Interface de passerelle commune. Cela semble sec. Cela fonctionne simplement.
À la base, un script CGI n’est qu’un programme. Généralement écrit en C ou PERL, il réside dans un dossier spécifique sur le serveur, généralement nommé cgi-bin. Lorsqu’un navigateur accède à l’URL de ce script, le serveur ne se contente pas de renvoyer un fichier statique. Il exécute le programme. Tout ce que ce programme imprime sur sa sortie standard (STDOUT) est transmis directement à votre navigateur.
Il y a une règle que vous ne pouvez pas enfreindre. La toute première chose que le script doit envoyer est l’en-tête : Content-type : text/html\n\n. Deux nouvelles lignes à la fin. Il signale au navigateur : “Ce qui suit est du HTML”. Après cela? Tout est permis. Les développeurs envoient généralement des balises HTML valides pour garantir que la page s’affiche correctement.
Gestion des données du formulaire
Comment le script sait-il quelles données traiter ? Il provient d’un formulaire HTML. Vous définissez un attribut ACTION dans le code du formulaire pointant vers l’URL du script CGI. Lorsqu’un utilisateur soumet le formulaire, les données sont transmises au script.
Le script doit ensuite faire le gros du travail. Il analyse les chaînes entrantes. Il décode les caractères modifiés (comme transformer %20 en espace). Un simple programme C peut gérer cette analyse, même si cela nécessite une gestion manuelle de la mémoire et une manipulation des chaînes.
Si vous utilisez PERL, c’est plus facile. La bibliothèque PERL CGI élimine la logique d’analyse compliquée. Vous appelez une fonction et les données sont prêtes. C’est plus propre. C’est plus rapide d’écrire.
Où vont les résultats ?
Dans un didacticiel, vous pouvez simplement imprimer les résultats à l’écran. Dans un scénario réel, vous voudriez stocker ces données. Des fichiers texte ? Des bases de données ? Les deux fonctionnent. Vous pouvez ajouter les réponses à l’enquête à un fichier journal à partir de C ou PERL avec un minimum de code. Cette persistance est ce qui rend CGI utile au-delà d’une simple démo “Hello World”.
L’héritage de CGI
Nous avons couvert les bases du C et de PERL dans ce contexte. Si vous souhaitez approfondir la mécanique, vous pouvez examiner comment fonctionne la programmation C ou PERL sous le capot. Ou découvrez comment les serveurs Web gèrent ces requêtes.
Pour ceux qui veulent éviter le passe-partout, il existe des ressources comme cgi-lib.pl. C’est une bibliothèque qui simplifie considérablement le traitement PERL CGI. Il existe également l’index des ressources CGI pour la documentation et les introductions rapides aux formulaires HTML.
C’est une vieille technologie. Mais cela a établi le modèle dans lequel les serveurs communiquent avec les programmes externes. Comprendre cela vous aide à donner un sens à la pile moderne, même si vous utilisez désormais Python ou Node.js. La question fondamentale reste la même : comment prendre en compte les commentaires des utilisateurs et les transformer en une réponse dynamique ?
La réponse commençait par un script dans un dossier cgi-bin.


















