Envoi de données à une application CGI

Appel à une application CGI

Le moyen le plus simple d'appeler une application CGI est de taper l'URL du programme dans le champ location du navigateur. Nous avons placer un script dos cgitest.bat dans le répertoire d:\base\httpd\cgi-bin. Pour le faire fonctionner, il suffit de taper http://www.brunette.brucity.be/cgi-bin/cgitest.bat dans la fenêtre location d'un naviagteur.

Une autre méthode consiste à créer un hyperlien tel que

<A HREFF="cgi-bin/cgitest.bat">Cliquer ici pour exécuter cgitest.bat</A>,

ce qui donne

Cliquer ici pour exécuter cgitest.bat.

Pour une application Perl placée dans le même répertoire il est nécessaire d'appeler l'interprêteur perl.exe. Ceci ce faire via l'hyperlien

<A HREFF="cgi-bin/perl.exe?stest.pl">Cliquer ici pour exécuter stest.pl</A>,

ce qui donne

Cliquer ici pour exécuter stest.pl.

Si le script se trouve dans un sous-répertoire de d:\base\httpd\cgi-bin, par exemple C:\WWWSRV\httpd\cgi-bin\reptest, l'URL correspondant est http://www.brunette.brucity.be/cgi-bin/perl.exe?reptest/stest.pl.

A titre d'information voici les sources des exemples utilisés.

cgitest.bat :

@echo off
Content-type: text/plain
type blank-line.txt
echo Salut ç ç é !

où blank-line.txt est un fichier texte ne contenant qu'une ligne vide.

stest.pl :

print "Content-type: text/html", "\n\n";
print "Ce script est ex&eacute;cut&eacute", "\n";
exit(0);

Les URLs vers une application CGI

Les URLs vers une application CGI peuvent être divisés en 3 parties :
[chemin virtuel][information externe au chemin]?[demande].

Les variables d'environnements

Les en-têtes HTTP

Presque toute les applications CGI doivent produire en première ligne une en-tête HTTP qui indique au client quel type de donnée lui est destinée via la sortie standard. Seules les applications appelées depuis le serveur même sont exemptées d'en-tête HTTP.
 
Type de réponse
En-tête HTTP
Texte. Content_type: text/plain
Page HTML. Content_type: text/html
Image gif. Content_type: image/gif
Redirection vers une autre page Web. Location: http://www.brunette.brucity.be
Message d'erreur. Statut: 402
Attention une en-tête HTTP doit être suivie d'une ligne vide. Voici un exemple d'une première ligne d'un script Perl :
print("Content_type:text/html\n\n"); .


suite-index