CGI signifie Common Gateway Interface. Ce protocole standard permet aux serveurs web d'exécuter des programmes et de générer du contenu dynamique pour les navigateurs. Un script CGI s'exécute côté serveur en réponse à une URL spécifique demandée par l'utilisateur.
Les scripts CGI transforment un site web statique en une plateforme interactive et personnalisée. De l'authentification utilisateur à des applications e-commerce complexes, ils sont au cœur de l'expérience web moderne. Voici leurs principaux bénéfices :
Les fichiers HTML, CSS et JavaScript sont servis directement par le serveur. Les CGI, eux, sont exécutés pour des contenus dynamiques, comme l'accès à une base de données pour authentifier un utilisateur via nom et mot de passe.

Le logiciel HTTP du serveur est configuré pour exécuter des CGI spécifiques lorsque des URL correspondent à des motifs prédéfinis, générant ainsi du contenu à la demande.
Une requête navigateur transmet des en-têtes HTTP et un corps éventuel, incluant :
Le serveur passe ces données au CGI, qui les utilise pour personnaliser la réponse.
Les CGI excellent dans le traitement des formulaires HTML. À l'envoi, le navigateur transmet les données à l'URL cible via méthode POST. Le CGI analyse ces entrées et renvoie une réponse adaptée.
Voici un script Python simple, déployable sous https://www.example.com/cgi-bin/env.cgi. Il affiche les variables d'environnement reçues du serveur :
#!/usr/bin/env python
import os
print("Content-Type: text/plain\n")
for key in os.environ:
print(key, "=>", os.environ[key])
Introduits avec le premier serveur NCSA HTTPd, les CGI ont permis le passage du statique au dynamique. Initialement des scripts Perl ou Shell, ils ont évolué vers des langages compilés (C/C++), puis des interpréteurs intégrés comme PHP pour plus d'efficacité.
Aujourd'hui, PHP, Node.js et autres frameworks succèdent aux CGI traditionnels, mais le principe persiste.
Utilisez-vous des scripts CGI sur votre site ? Quels défis avez-vous rencontrés ? Partagez en commentaires !
[]