CGI
El CGI (Common Gateway Interface) es una interfaz que maneja programas externos (scripts CGI) en un servidor web para permitir la ejecución de las páginas web interactivas.
CGI fue desarrollado por NCSA (National Center for Supercomputing Applications) en 1993. Reside en el lado del servidor y permite a los navegadores web interactuar con programas en el servidor web. Por ejemplo, si una página web consulta una base de datos o un usuario está enviando la información del formulario al servidor en ese momento se invocan scripts CGI. El servidor pasa esa información a una aplicación de dos maneras: GET o POST, luego la aplicación responde al servidor de vuelta al navegador. De esta manera, los navegadores obtienen algunos resultados para el usuario.
La función de un CGI es escanear la información recibida del navegador y producir una respuesta adecuada, después de la finalización de la tarea el script CGI es terminado. En Common Gateway Interface, el común significa que puede funcionar bien en cualquier sistema operativo o lenguaje de programación.
Anteriormente, los scripts shell de UNIX y PERL se usaban para escribir los programas CGI, esa es la razón por la que se llamaban «scripts» CGI. Pero, ahora se puede usar cualquiera de los lenguajes como C, C++, Perl, Visual Basic o Python.
CGI puede presentar problemas potenciales de seguridad, ya que el servidor web también puede tratar los archivos ejecutables como programas CGI en algunos directorios específicos. CGI maneja cada solicitud de cliente por un proceso separado que aumenta la carga del servidor haciéndola más lenta.