Comment Ca Marche - Communauté informatique  
   
Accueil - Encyclopédie informatiqueTélécharger l'encyclopédieContribuer à cet article

CGI - L'envoi de données au navigateur

L'affichage de données sur le navigateur avec les CGI Encyclopédie


But d'un script CGI

Les scripts CGI ont pour but d'afficher des pages Web générées par un programme informatique, d'où la dénomination de pages web dynamiques pour les pages créées par ce moyen. Toutefois, étant donné que le serveur renvoie telles quelles au navigateur les informations que lui fournit le script CGI, il est nécessaire d'ajouter aux données à afficher les en-têtes HTTP permettant au navigateur de comprendre qu'il s'agit d'une page web.

Le programme CGI doit créer lui-même les en-têtes HTTP. A contrario la plupart des langages de pages web dynamiques, tels que PHP prennent en charge la création des en-têtes.

Envoi des en-têtes HTTP

Puisque le serveur ne crée pas d'en-têtes pour les CGI, un script CGI doit commencer par envoyer un en-tête HTTP correspondant au type de fichier qu'il transmet. Compte tenu du fait que le rôle principal des CGI est de créer des pages dynamiques, l'en-tête HTTP correspondra la plupart du temps au type text/html. La première chaîne envoyée au navigateur est donc la suivante :

content-type : text/html\n\n

Les deux sauts de ligne sont indispensables !
  • le premier sert simplement à retourner à la ligne ;
  • le second sert à créer la ligne vide séparant les en-têtes HTTP du corps du message, comme le veut la spécification du protocole HTTP.
Il est légitime de se demander pourquoi le serveur ne pourrait pas ajouter tout seul les en-têtes HTTP, comme il le fait dans le cas des pages web statiques (fichiers .htm et .html). En fait, un programme CGI peut renvoyer n'importe quel type de contenu, c'est-à-dire qu'il est capable de renvoyer une image octet par octet, qui sera intégrée dans un document HTML par exemple, pourvu que le CGI renvoie un en-tête correspondant au type de l'image. Une fois de plus, le serveur pourrait éventuellement être capable de reconnaître le type de données que le CGI renvoie et adapter les en-têtes HTTP en fonction. En réalité, les en-têtes HTTP peuvent faire beaucoup plus que préciser le type de document envoyé (voir l'article sur le protocole HTTP), il est notamment possible d'effectuer une redirection en envoyant un en-tête de redirection. Une exemple d'usage consiste à pointer vers un CGI, qui enregistre des informations sur le visiteur (une sorte de compteur de visites amélioré), puis le redirige vers un document, de façon totalement transparente.

Exemple de script CGI en Perl

Voici un exemple de script tout simple permettant d'afficher une page web sur laquelle est écrit « Hello World » (cette phrase est sans aucun doute la phrase la plus vue sur le Web, car c'est la première chaîne que les programmeurs en herbe affichent par coutume).

#! /usr/local/bin/perl
print "content-type : text/html\n\n";

print "<HTML>";

print "<HEAD>";

print "<TITLE>Hello world</TITLE>";

print "</HEAD>";

print "<BODY>";

print "Hello world!";

print "</BODY>";

print "</HTML>";

Voyons maintenant un autre exemple, dans lequel le programme CGI effectue uniquement une redirection vers l'URL http://www.commentcamarche.net :

#! /usr/local/bin/perl
print "location : http://www.commentcamarche.net";

Discussions pertinentes trouvées dans le forum

04/09 15h37 personne connaissant cgi recherche personne connaissant cgi ou autre Webmastering 10/09 12h05->kifman032
25/07 19h44 cgi bin probleme cgi-bin Linux/Unix 27/07 17h33->jisisv12
30/06 17h46 cgi python fichiers binaires [CGI][Python] Problème avec fichiers binaires Développement 01/07 17h00->batmat11
08/06 10h18 script cgi perl navigateur script CGI en perl et navigateur Linux/Unix 24/09 17h29->lami20j10
10/03 20h54 script cgi bin Petit script cgi-bin Développement 10/03 23h04->frzburn9
10/03 18h10 executer script cgi Executer un Script CGI Développement 11/03 15h22->rania8
08/09 14h30  Hitparade Xiti et CGI Suggestions 09/09 00h28->dodo8
28/10 00h53 labview cgi Labview + cgi Logiciels/Pilotes 05/12 19h25->foobar478
09/06 11h12 cgi trans fichiers CGI: comment transmettre des fichiers Développement 26/06 14h11->txiki8
06/09 18h32 cgi comprend rien Les CGI j'en peux plus je ne comprend rien... Développement 07/09 21h04->Jolkdarr8
Discussion fermée Problème résolu CGI Plus de discussions sur « CGI »

Ce document intitulé « CGI - L'envoi de données au navigateur » issu de l'encyclopédie informatique Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.