Interfaz de puerta de enlace común (cgi)

Definición: ¿Qué significa Common Gateway Interface (CGI)?

Common Gateway Interface (CGI), en el contexto del desarrollo web, es una interfaz para ejecutar ejecutables a través de un servidor web. En la mayoría de los casos, esto significa tomar una solicitud HTTP y pasarla a una aplicación para devolver una página HTML generada dinámicamente a un navegador. Si bien prácticamente cualquier programa que se pueda ejecutar en un servidor web se puede utilizar como un script CGI, Perl es el lenguaje más popular.

El estándar para CGI se define en RFC 3875.

Techinfo explica la interfaz de puerta de enlace común (CGI)

En los primeros días del desarrollo web, CGI era una de las pocas formas de proporcionar interactividad en una aplicación web. Era más común en Apache, pero los puertos también se hicieron para ejecutar CGI en IIS.

El uso más común de CGI es usar lenguajes de secuencias de comandos, por lo que es común referirse a esto como ejecutar una secuencia de comandos CGI. Los programas y scripts CGI generalmente se recopilan en una carpeta llamada / cgi-bin /.

La principal desventaja de CGI es que cada carga de página genera una sobrecarga al tener que cargar los programas en la memoria. Los datos no se pueden almacenar fácilmente en la memoria caché entre cargas de página. Debido a esta desventaja, muchos desarrolladores se han trasladado a servidores de aplicaciones que siguen funcionando. Sin embargo, existe una enorme base de código, gran parte de ella en Perl. Los defensores de CGI argumentan que es simple, estable y una buena opción para ciertas aplicaciones, especialmente las que involucran tareas en las que Perl sobresale, como el manejo de texto. Las soluciones alternativas también evitan la carga en el tiempo de ejecución de Perl o PHP para cada solicitud al incluir el tiempo de ejecución en el servidor web (mod_perl y mod_php en Apache) u otras soluciones como FastCGI (procesos separados que manejan múltiples solicitudes).

Esta definición fue escrita en el contexto del desarrollo web