Dans cette section, nous décrivons le fonctionnement d'un CGI entre
un navigateur et un serveur web du type utilisé pour BRUNETTE :
Netscape Communications Server 1.13.
Un appel à une application CGI se déroule en 4 temps.
Le client envoie une requête au serveur en vue de se faire envoyer
un document. Si le serveur en a la possibilité il satisfait directement
à la demande du client : il lui envoie le fichier .HTML, .GIF ou
tout autre document ordinaire.
Si le serveur reçoit une requête destinée à
une application externe, appelée requête CGI, le processus
serveur produit un double de lui même : le processus CGI. Attention
le nombre de processus qu'un serveur peut produire est limité, il
est donc impératif de ne pas produire des application CGI qui ne
se terminent jamais. Remarquons aussi que la requête CGI contient
les arguments de l'application cible. Parce que le processus CGI est une
copie du processus serveur il détient, par défaut, une série
d'informations par rapport au client dont
l'adresse IP et la DNS de l'ordinateur hôte du client,
le type de navigateur utilisé par le client,
si l'hôte client est autorisé ou non à accéder
au serveur.
Le processus CGI stocke les données destinées à l'application
cible et les informations à propos de l'ordinateur hôte dans
les variables d'environnement. Le processus CGI peut
alors envoyer les arguments à l'application directement via l'entrée
standard. A ce stade le processus CGI crée un chemin entre l'application
CGI et le serveur.
Les applications CGI sont exécutées. Le résultat de
leur exécution, via la sortie standard, est envoyé vers le
serveur qui envoie le tout vers le client. Une application CGI peut produire
un document HTML, GIF ou JPEG. Le processus CGI est détruit avec
la fin de l'exécution de l'application associée.