Interface de passerelle commune (cgi)

Définition - Que signifie Common Gateway Interface (CGI)?

Common Gateway Interface (CGI), dans le contexte du développement Web, est une interface permettant d'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 en tant que script CGI, Perl est le langage le plus populaire.

La norme pour CGI est définie dans la RFC 3875.

Definir Tech explique Common Gateway Interface (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 est l'utilisation de langages de script, et il est donc courant de faire référence à cela comme l'exécution d'un script CGI. Les programmes et scripts CGI sont généralement rassemblés dans un dossier nommé / cgi-bin /.

Le principal inconvénient de CGI est que chaque chargement de page entraîne une surcharge en ayant à charger les programmes en mémoire. Les données ne peuvent pas être facilement mises en cache en mémoire entre les chargements de page. En raison de cet inconvénient, de nombreux développeurs sont passés à des serveurs d'applications qui restent en cours d'exécution. Cependant, il existe une énorme base de code existante, une grande partie en Perl. Les partisans de CGI soutiennent qu'il est simple, stable et un bon choix pour certaines applications, en particulier impliquant des tâches où Perl excelle, comme la gestion de texte. Les solutions de contournement évitent également le chargement dans le runtime Perl ou PHP pour chaque requête en incluant le runtime dans le serveur Web (mod_perl et mod_php dans Apache), ou d'autres solutions telles que FastCGI (processus séparés qui gèrent plusieurs requêtes).

Cette définition a été écrite dans le contexte du développement Web