Un script CGI (Common Gateway Interface, traduisez interface de passerelle commune)
est un programme exécuté par le serveur web (on dit généralement
« côté serveur »),
permettant d'envoyer au navigateur de l'internaute un
code HTML créé automatiquement par le serveur
(basé par exemple sur une autre application, telle qu'un système de gestion de base de données,
d'où le nom de passerelle).
Un des principaux intérêts de l'utilisation de CGI est la possibilité de
fournir des pages dynamiques, c'est-à-dire des pages personnalisées
selon un choix ou une saisie de l'utilisateur. L'application la plus fréquente de cette
technique repose sur l'utilisation de formulaires HTML permettant
à l'utilisateur de choisir ou de saisir des données, puis de cliquer sur un bouton
de soumission du formulaire, envoyant alors les données du formulaire en paramètre
du script CGI.
Un programme CGI peut être écrit dans à peu
près n'importe quel langage de programmation
pourvu que celui-ci soit :
- capable de lire le flux de données d'entrée ;
- capable de traiter des chaînes de caractères ;
- capable d'écrire sur le flux standard de sortie ;
- exécutable ou interprétable par le serveur.
Les langages de programmation les plus utilisés
pour l'écriture des CGI sont les suivants :
- Le langage Perl, particulièrement
adapté à la manipulation de chaînes de caractères ;
- Les langages C et C++ ;
- Le langage Java
.
Lorsqu'une requête est envoyée
au serveur, celui-ci examine l'extension du fichier demandé afin de déterminer
l'action qu'il va effectuer. Ainsi, par exemple :
- dans le cas d'un fichier HTML (extension .htm ou .html) : le serveur va générer des en-têtes de réponse HTTP
qu'il va envoyer au navigateur demandant un fichier, puis envoyer le fichier HTML.
- dans le cas d'un fichier CGI écrit en Perl (extension .pl) : le serveur va exécuter
l'interpréteur Perl, celui-ci va interpréter le code contenu dans le fichier portant l'extension
.pl, puis envoyer les données au serveur, qui va les envoyer au navigateur, comme dans le cas d'un fichier HTML
- dans le cas d'un fichier CGI écrit en langage C (extension .exe sous Windows) :
le serveur va exécuter le CGI, puis envoyer vers le navigateur les données que le programme lui aura transmis.
Ainsi, le rôle d'un script CGI est de recevoir des données envoyées par le serveur, de les
traiter, puis de renvoyer des en-têtes de réponses et des tags HTML valides. En effet, lorsqu'un programme CGI
renvoie un fichier, il doit commencer par envoyer un en-tête HTTP permettant de préciser le type de contenu
envoyé au navigateur (appelé type MIME), c'est-à-dire :
|