Flux rss
Collection CommentÇaMarche.net
Bookmark Ajouter aux favoris / Partager

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";


Dernière modification le mardi 14 octobre 2008 à 17:40:29.Ce document intitulé « L'affichage de données sur le navigateur avec les CGI » issu de 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.
Pb recupération et affichage données sql Bonjour, J'ai un souci pour afficher des données à partir d'une base sql. Je m'explique : je voudrais pouvoir afficher des données en tableau à partir d'un formulaire checkbox qui va chercher les données correspondantes dans une base sql. Le... www.commentcamarche.net/forum/affich-7062183-pb-recuperation-et-affichage-donnees-sql
Script CGI en perl et navigateur Bonjour, J'ai un problème avec mes scripts CGI. J'utilise le langage perl. Quand j'utilise mon navigateur, il ne fait que m'afficher le contenu du script mais ne l'exécute pas. Pouvez-vous m'aider s'il vous plaît. Merci d'avance. www.commentcamarche.net/forum/affich-1582425-script-cgi-en-perl-et-navigateur
PHP - Affichage de texte sur le navigateur Le but de PHP est de permettre la création de pages web dynamiques, ainsi son but premier est de pouvoir envoyer des données au navigateur. Les trois fonctions standards PHP fournit 3 fonctions permettant d'envoyer du texte au navigateur. Ces... www.commentcamarche.net/contents/php/phpaffich.php3
Afficher les images et les animations Flash dans le navigateurQuand vous allez sur un site internet, vous n'avez plus d'images affichées ; elles sont remplacées par un petit rectangle avec un carré rouge ou un triangle bleu (par exemple). 1 - Vérifier d'abord les paramètres de votre navigateur : Pour... www.commentcamarche.net/faq/sujet-499-afficher-les-images-et-les-animations-flash-dans-le-navigateur
Récupération de données perduesIl peut arriver de perdre des données en cas de "crash" du disque dur (choc électrique ...) ou dans un malheureux formatage ! Il est encore souvent possible de les récupérer grâce à des utilitaires de récupération de données ! Néanmoins, les solutions... www.commentcamarche.net/faq/sujet-309-recuperation-de-donnees-perdues
Plusieurs pages d'accueil pour son navigateurPlusieurs pages d'accueil au démarrage Il est possible d'avoir plusieurs pages d'accueil au démarrage des navigateurs internet. Toutefois, il faut ruser pour y parvenir avec la version actuelle de Microsoft Internet Explorer. Le plus simple est... www.commentcamarche.net/faq/sujet-1834-plusieurs-pages-d-accueil-pour-son-navigateur
[php] afficher les données d'une base mysqlbonjour, j'arrive pas à afficher les données récupérées d'un base dans un tableau sut une page de mon site voici mon code: //script pour la page scanlist.html qui récupére les données session_id,user_id,start_time,end_time des tables session, www.commentcamarche.net/forum/affich-3241830-php-afficher-les-donnees-d-une-base-mysql
Afficher l'historique de navigationBonjour, avant, sur internet explorer, on pouvait facilement afficher l'historique de navigation pour retrouver un site fermé sans en avoir retenu l'adresse. mais depuis que j'ai internet explorer 7, je ne le trouve plus. Sous outils, il y a bien... www.commentcamarche.net/forum/affich-8310333-afficher-l-historique-de-navigation
PHP: Afficher le contenu d'une base de donneeBonjour, J'ai un soucis qui m'afflige depuis. J'ai creer une table news dans ma base de donnee avec les fields: id,date,titre, contenu. Sur ma page d'acceuil je me suis arranger a ce que le 5 premiers titre se trouvant dans ma base apparaisent en... www.commentcamarche.net/forum/affich-8235241-php-afficher-le-contenu-d-une-base-de-donnee
CGI - Réception et traitement des donnéesEnvoyer des données à un script CGI L'envoi de données à un script CGI se fait par l'intermédiaire d'un formulaire HTML. Les formulaires HTML se créent à l'aide de la balise contenant des boutons, des champs, des listes et/ou des cases à... www.commentcamarche.net/contents/cgi/cgiget.php3
Introduction à la programmation des CGIPrésentation de l'interface CGI 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... www.commentcamarche.net/contents/cgi/cgiintro.php3
Oracle - Le dictionnaire de donnéesPrésentation du dictionnaire de données Oracle Le dictionnaire de données Oracle représente le coeur de la base de données. Il s'agit d'un ensemble de tables systèmes contenant les informations relatives à la structure de la base de... www.commentcamarche.net/contents/oracle/oracdico.php3