La common gateway interface (CGI) est une interface de serveurs Web qui permet un échange de données normalisé entre des ap­pli­ca­tions et des serveurs externes. Elle fait partie des plus anciennes tech­no­lo­gies d’interface de l’Internet et est encore fré­quem­ment utilisée aujourd’hui. Avec les CGI (parfois traduit lit­té­ra­le­ment en français interface de pas­se­relle commune), les pages HTML ne doivent pas être en­tiè­re­ment dis­po­nibles sur le serveur, mais sont générées dy­na­mi­que­ment dès qu’un uti­li­sa­teur fait une demande ap­pro­priée via le site Web.

Fonction et ap­pli­ca­tion

Lorsqu’un uti­li­sa­teur saisit une entrée sur un site Web, ses données ne sont pas di­rec­te­ment trans­mises au serveur, mais elles doivent d’abord être traitées. Ce trai­te­ment est effectué par un logiciel externe (ou un script CGI), et non di­rec­te­ment par le serveur Web. Le programme transfère les données via l’interface CGI stan­dar­di­sée au serveur, qui peut alors afficher les in­for­ma­tions nou­vel­le­ment générées en HTML. Les pro­grammes CGI sont gé­né­ra­le­ment situés dans un dossier séparé sur le serveur Web.

Le script CGI lui-même peut être écrit dans dif­fé­rents langages de pro­gram­ma­tion. L’interface de pas­se­relle commune garantit que, quelle que soit la langue utilisée, le serveur Web et le script peuvent com­mu­ni­quer entre eux.

Cas d’uti­li­sa­tion de l’interface de la Common Gateway Interface

  • Paniers d’achat : si un client ajoute des produits à son panier en ligne, cette in­for­ma­tion est traitée par le script CGI et ensuite envoyée au serveur.
  • Com­men­taires : rem­plis­sage d’un champ de com­men­taire. En cliquant sur « Envoyer », le texte est envoyé au script CGI, qui transmet le message à son tour au serveur.
  • For­mu­laires : même avec les for­mu­laires en ligne, par exemple pour les can­di­da­tures ou les ins­crip­tions, les données saisies sont d’abord traitées par la common gateway interface avant d’être envoyées au serveur.
  • Sta­tis­tiques du site Web : si les chiffres d’accès au site Web sont affichés, la tech­no­lo­gie sous-jacente utilise souvent des CGI.
  • Server Side Include: des in­ter­faces de pas­se­relle commune peuvent être utilisées pour charger du contenu textuel sur le site web de manière dynamique.
  • Tests de logiciels : les dé­ve­lop­peurs peuvent utiliser des scripts CGI pour tester la fonc­tion­na­lité d’ap­pli­ca­tions en ligne externes pour des sites Web sur le na­vi­ga­teur.

Il est fa­ci­le­ment de repérer sur l’URL si un script est en cours d’exécution, même si vous n’avez aucune con­nais­sance en pro­gram­ma­tion. Le serveur reçoit toutes les in­for­ma­tions per­ti­nentes du script via une chaîne de ca­rac­tères spé­ci­fique qui y est encodée. On peut dis­tin­guer trois méthodes de transfert de données :

  • QUERY_STRING : cette méthode est utilisée prin­ci­pa­le­ment pour les requêtes uti­li­sa­teur
  • PATH_INFO : cette méthode est utilisée pour trans­mettre des in­for­ma­tions con­tex­tuelles au site Web
  • Stdin : pour permettre les autres saisies de l’uti­li­sa­teur d’être traitées

Avantages et in­con­vé­nients de la common gateway interface

Malgré son âge, la Common Gateway Interface est l’une des in­ter­faces les plus fré­quem­ment utilisées dans le dé­ve­lop­pe­ment de sites Web. Outre divers avantages, cette tech­no­lo­gie présente également quelques in­con­vé­nients.

Avantages

La CGI est une méthode simple et efficace pour générer du contenu de site Web dynamique. En même temps, les ap­pli­ca­tions CGI n’ont pas besoin d’être stockées sur le serveur, ce qui permet d’éviter de gaspiller des res­sources. L’interface de la Common Gateway Interface est également com­pa­tible avec divers langages de pro­gram­ma­tion et peut donc être fa­ci­le­ment intégrée dans les in­fras­truc­tures exis­tantes. Enfin, en tant que norme gratuite, elle n’entraîne aucun coût d’uti­li­sa­tion, mais peut être im­mé­dia­te­ment utilisée par tout dé­ve­lop­peur.

In­con­vé­nients

L’une des plus grandes fai­blesses de la common gateway interface est que, bien que la charge du serveur soit réduite, le temps de réponse de l’ap­pli­ca­tion CGI est parfois assez long car le programme doit être redémarré à chaque nouvelle entrée. Surtout pour les sites Web à fort trafic, il peut devenir pro­blé­ma­tique que les serveurs ne prennent souvent en charge qu’un certain nombre d’ap­pli­ca­tions CGI et que les autres demandes entrantes soient alors mises en file d’attente ou rejetées.

La common gateway interface, comme d’autres in­ter­faces, peut présenter un risque de sécurité si aucune pro­tec­tion ap­pro­priée n’est mise en place. Grâce au CGI, les pro­grammes externes ont en principe accès à l’in­té­gra­lité des données du serveur Web. Des res­tric­tions claires doivent donc être mises en place afin qu’un script CGI ne puisse pas causer de dommages.

Al­ter­na­tives à la Common Gateway Interface

Ces dernières années, plusieurs autres tech­no­lo­gies d’interface ont été dé­ve­lop­pées, qui restent basées sur les CGI, mais qui tentent d’éliminer leur principal in­con­vé­nient, à savoir qu’un script doit être rechargé à chaque requête d’un uti­li­sa­teur.

ASP (Active Server Pages) : l’ASP a été ini­tia­le­ment développé par Microsoft pour ses propres serveurs, mais il est main­te­nant dis­po­nible pour de nombreux serveurs. L’in­ter­prète ASP est intégré au serveur Web, de sorte qu’il n’est pas né­ces­saire de lancer un nouveau processus pour l’utiliser. Les commandes ASP peuvent être écrites di­rec­te­ment dans les pages HTML. Comme la CGI, l’ASP peut être utilisé avec dif­fé­rents langages de pro­gram­ma­tion.

PHP : PHP fait partie des langages de script les plus répandus sur le Web, après Perl. Il peut réaliser une grande partie de ce que font les scripts CGI. L’in­ter­pré­teur PHP est néanmoins di­rec­te­ment intégré au serveur Web.

Cold­Fu­sion : Cold­Fu­sion a été développé à l’origine pour Windows, mais il est main­te­nant également dis­po­nible pour diverses pla­te­formes Unix. L’in­ter­pré­teur Cold­Fu­sion est intégré au serveur Web, comme les autres al­ter­na­tives CGI qui viennent d’être pré­sen­tées. Les pages HTML peuvent être modifiées à l’aide de balises exis­tantes ou d’éléments de contrôle per­son­na­li­sés. En outre, Cold­Fu­sion offre aux dé­ve­lop­peurs un certain nombre de fonc­tion­na­li­tés standard.

FastCGI : avec FastCGI, les requêtes dy­na­miques du serveur Web peuvent être traitées di­rec­te­ment via une interface Perl sans qu’il soit né­ces­saire de lancer un nouveau processus. FastCGI est largement com­pa­tible avec les CGI et est pris en charge par un grand nombre de serveurs web.

Aller au menu principal