Vous êtes sur la page 1sur 9

INSTITUT UNIVERSITAIRE LES COURS SONOU

COME

THEME : Passerelle CGI

PARTICIPANTS:
1- AREAGO Glori

2- AKAKPO Luc

3- AYE Ives

SUPERVISÉ PAR :
ADEKAMBI AKAMBI
PLAN

I- Définition de Passerelle CGI

II- Fonctionnement du CGI

III- Exemple d'application CGI

IV- Avantages de la passerelle CGI

V- Inconvénients de la passerelle CGI

VI- Langage de programmation des CGI


Au tout début du développement Web, CGI était l'un des rares moyens de fournir
de l'interactivité dans une application Web. C'était le plus courant sur Apache,
mais les ports étaient également conçus pour exécuter CGI sur IIS.

L'utilisation la plus courante de CGI utilise des langages de script, et il est donc
courant de se référer à cela comme exécutant un script CGI.

I- Définition de Passerelle CGI

Common Gateway Interface (CGI), dans le contexte du développement Web, est


une interface pour exécuter des exécutables via un serveur Web. Dans la plupart
des cas, cela signifie prendre une requête HTTP et la transmettre à une
application afin de renvoyer une page HTML générée dynamiquement à un
navigateur. Bien que pratiquement tous les programmes pouvant s'exécuter sur
un serveur Web soient utilisables comme script CGI, Perl est le langage le plus
populaire.

Les programmes et scripts CGI sont généralement collectés dans un dossier


nommé / cgi-bin /.

Le CGI, Common Gateway Interface, est une passerelle entre un serveur Web et
des programmes d'applications sur le serveur. Cette technologie se base sur des
passages de paramètres entre le client et les applications. Cela signifie qu'en
utilisant des CGI, on peut obtenir des pages Web différentes en fonction des choix
et des requêtes particulières des utilisateurs. La communication dynamique d'un
client vers une application serveur se fait généralement par l'intermédiaire de
formulaires (balise <FORM>) ou de boutons de validation présents sur la page
HTML.
Des paramètres destinés au CGI figurent donc dans le code source HTML, souvent
à l'intérieur de balises <FORM> :

<HTML>

<HEAD>

<TITLE>Formulaire pour CGI</TITLE>

</HEAD>

<BODY>

<H1>Un exemple</H1>

<FORM METHOD= POST ACTION= "/cgi-bin/exemple.exe">

Nom:

<INPUT TYPE=TEXT SIZE=20 NAME="nom"><BR>

Prénom:

<INPUT TYPE=TEXT SIZE=20 NAME="prénom"><BR>

Suggestions:<BR>

<TEXTAREA COLS=30 ROWS=10 NAME="suggestions"></TEXTAREA>

<INPUT TYPE=SUBMIT VALUE="OK">

</FORM>
Ceci affiche un formulaire :

Ce programme est exécuté côté serveur dans le cadre d’une architecture 3-tiers,
visant à développer des sites Web dynamiques et interactifs pouvant s'appuyer
par exemple sur des bases de données stockées sur un serveur et permet
d'afficher les données provenant de ces applications tierces, d'où son nom de
passerelle (Gateway).
II- Fonctionnement du CGI

Le rôle spécifique d'un programme CGI est de recevoir des données envoyées par
le serveur HTTP (reçues du poste client), de les traiter, puis de renvoyer des
réponses et des balises HTML valides. Un programme CGI comporte des scripts
serveur généralement écrits dans un langage compilé ou interprété tels que Perl,
C ou Java. Il faut que ces scripts serveurs soient capables de recevoir des
paramètres (variables et instructions) depuis des clients Web, d'effectuer des
traitements ou des calculs, ou encore d'accéder à des sources de données (SGBD
notamment) et, bien sûr, de générer des résultats dans un format assimilable par
une page Web (soit un format MIME).

Les pages ainsi générées sont ensuite renvoyées vers le navigateur via le
protocole HTTP.

Le schéma suivant montre le scénario typique d'exécution d'un programme CGI.


Le client fait appel à une application nécessitant d'être exécutée sur le serveur.

Le serveur HTTP, à la réception de la requête, lance un nouveau processus serveur.

La passerelle CGI récupère alors depuis le serveur HTTP les paramètres et les
passent au processus serveur.

Le processus serveur charge et exécute le programme demandé (un SGBD par


exemple) qui génère la page HTML et la renvoie au CGI, qui la renvoie vers le
serveur HTTP.

Le serveur HTTP envoie le document HTML final au navigateur client.

III- Exemple d'application CGI

Les programmes CGI sont invoqués le plus souvent pour accéder aux données des
formulaires HTML remplis par les utilisateurs.

Une autre utilisation courante consiste à pouvoir envoyer des emails également
sur base d'un formulaire. On peut donc gérer une liste d'adresses électroniques
pour pouvoir envoyer un courrier électronique à toute une liste diffusion.

De nombreuses autres applications sont possibles :

- Création d'un forum de discussion

- Création d'espaces réservés aux membres d'un site


- Permettre aux visiteurs d'un site de pouvoir donner une côte ou un
classement pour des produits (commerciaux ou des textes, tutoriaux ...)
disponibles sur le site.

Les programmes CGI offrent donc un support important au développement de


services web, e-commerce notamment et à rendu interactif des pages d'un site
web.

IV- Avantages de la passerelle CGI

Les CGI offrent divers avantages :

 Le traitement (avant envoi vers le navigateur) par un serveur d'applications


ouvre les sites Web dynamiques à l'interactivité de leur contenu et à leur
évolutivité (via les bases de données par exemple).

 Les CGI présentent un grand avantage de robustesse puisque chaque


exécution de programmes se passe dans un processus autonome et
d'indépendance par rapport aux langages de programmation.

Ceci a également pour corollaire de fournir une très bonne portabilité des
programmes CGI d'un système d'exploitation à un autre.

V- Inconvénients de la passerelle CGI

Développer son site avec des CGI n'est pourtant pas toujours sans problèmes :

 Les CGI sont souvent utilisés abusivement, comme simples scripts serveur,
détournés de leur fonction première, c'est-à-dire d'être une passerelle vers
des programmes d'application. Ceci a pour conséquence d'alourdir les
serveurs.

 Les CGI sont critiqués pour leur faible performance, étant donné que les
processus serveurs et les programmes d'application doivent à chaque fois
être relancés (ce qui n'est pas le cas avec les API ou avec les servlets Java,
qui se chargent en mémoire lors de la première utilisation et y restent
jusqu'à la fin de la session.).

VI- Langage de programmation des 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 web.

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 language Java

Lorsqu'un visiteur soumet une requête au site web, le serveur HTTP


transmet par CGI le terme qui a été saisi dans le formulaire de la page web.
Le programme CGI cherche alors dans sa base de données tous les sites
contenant le terme, crée un document HTML contenant les résultats et le
retourne au serveur HTTP qui va la transmettre au navigateur web.

Vous aimerez peut-être aussi