Common Gateway Interface (CGI): qué es y qué aplicaciones tiene

Common Gateway Interface (CGI) o interfaz de entrada común es una interfaz de los servidores web que permite intercambiar datos entre los servidores y las aplicaciones externas de manera estandarizada. Se encuentra entre las tecnologías de interfaz más antiguas de Internet, aunque su uso sigue muy extendido en la actualidad. Con el CGI, no es necesario que todo el contenido de la página HTML esté disponible en el servidor, sino que este se genera de forma dinámica cuando el usuario realiza la solicitud correspondiente a través de la propia página.

Funcionamiento y aplicación de CGI

Cuando un usuario realiza una petición en una página web, estos datos no se envían directamente al servidor, sino que primero deben procesarse. Este procesamiento no se lleva a cabo en el servidor, sino mediante un software externo (o un script CGI). A través de una interfaz CGI estandarizada, el programa transfiere los datos al servidor, que, a continuación, puede mostrar los datos recién generados en un documento HTML. Por lo general, las aplicaciones CGI suelen almacenarse en su propio directorio en el servidor web.

El propio script CGI puede escribirse en gran variedad de lenguajes de programación. Common Gateway Interface garantiza que, al margen del lenguaje utilizado, el servidor web y el script puedan comunicarse entre sí.

Usos de Common Gateway Interface

  • Cesta de la compra: cuando un cliente añade algún producto a la cesta de la compra de una tienda en línea, el script CGI procesa esos datos y, luego, los envía al servidor.
  • Comentarios: el usuario rellena un campo de comentarios. Cuando hace clic en “Enviar”, el texto se transmite al script CGI, que, a su vez, lo reenvía al servidor.
  • Formularios: también en el caso de los formularios en línea, como a la hora de enviar algún mensaje o inscribirse en una oferta de trabajo, los datos introducidos ​​son procesados ​​primero por Common Gateway Interface antes de transmitirse al servidor.
  • Estadísticas de páginas web: cuando las páginas web muestran el tráfico que tienen, la tecnología que lo respalda también recurre al CGI en muchos casos.
  • Server Side Includes: el uso de Common Gateway Interface permite cargar el contenido en formato de texto dinámicamente en la página web.
  • Pruebas de software: a través del navegador, los desarrolladores pueden utilizar scripts CGI para probar la funcionalidad de las aplicaciones en línea externas para páginas web.

Hasta los usuarios sin ningún conocimiento de programación pueden reconocer fácilmente si un script se está ejecutando actualmente mirando el URL, donde hay codificada una determinada cadena de caracteres con todos los datos relevantes del script que deben transmitirse al servidor. Existen tres formas de transmisión de datos:

  • QUERY_STRING: este método se utiliza principalmente para las peticiones de los usuarios.
  • PATH_INFO: este método envía información contextual sobre la página web.
  • Stdin: con este método, se procesan otras solicitudes del usuario.

Ventajas e inconvenientes de Common Gateway Interface

A pesar de sus años de antigüedad, CGI sigue siendo uno de los estándares más utilizados en el desarrollo de páginas web. No obstante, esta tecnología no solo presenta ventajas, sino también algunos inconvenientes.

Ventajas

El CGI es una forma sencilla y eficaz de generar contenido dinámico en las páginas web. Al mismo tiempo, como las aplicaciones CGI no tienen que almacenarse en el servidor, no se utilizan recursos innecesariamente. Desde un punto de vista práctico, otra ventaja de Common Gateway Interface es que es compatible con varios lenguajes de programación y, por lo tanto, puede incorporarse fácilmente a las infraestructuras existentes. Por último, pero no por ello menos importante, se trata de un estándar gratuito y disponible para todos los desarrolladores en cualquier momento.

Inconvenientes

Uno de los mayores puntos débiles de Common Gateway Interface es que, aunque la carga del servidor se reduce, el tiempo de respuesta de las aplicaciones CGI se alarga mucho en algunos casos, porque los programas deben volver a ejecutarse con cada nueva solicitud. Especialmente en el caso de las páginas web con mucho tráfico, el hecho de que los servidores solo suelan admitir una cierta cantidad de aplicaciones CGI y que otras solicitudes entrantes se pongan en espera o, directamente, se rechacen puede suponer un problema.

Por otra parte, al igual que otras interfaces, Common Gateway Interface puede suponer un riesgo para la seguridad si no se configura un medio de protección adecuado. En teoría, a través del CGI, los programas externos tienen acceso a todos los datos del servidor web. Por lo tanto, deben establecerse unas restricciones claras para evitar que los scripts CGI causen daño.

Alternativas a Common Gateway Interface

En los últimos años, se han desarrollado otras tecnologías de interfaz basadas en CGI, pero que intentan mitigar su principal inconveniente: que los scripts deban volver a ejecutarse con cada nueva solicitud del usuario.

ASP (Active Server Pages): ASP fue desarrollado originalmente por Microsoft para sus propios servidores, pero ahora está disponible para muchos otros. El intérprete ASP está integrado en el servidor web, por lo que no es necesario iniciar nuevos procesos al utilizarlo. Los comandos ASP se pueden escribir directamente en las páginas HTML. Al igual que CGI, ASP también es compatible con varios lenguajes de programación.

PHP: junto con Perl, PHP es uno de los lenguajes de scripting más utilizados en Internet. La funcionalidad de PHP es muy similar a la del script CGI. Sin embargo, el intérprete PHP está integrado directamente en el servidor web.

ColdFusion: se desarrolló originalmente para Windows, pero ahora también está disponible para varias plataformas Unix. El intérprete de ColdFusion está integrado en el servidor web, al igual que las alternativas a CGI mencionadas más arriba. Las páginas HTML se pueden modificar con etiquetas predefinidas o con elementos de control personalizados. Además, ColdFusion ofrece a los desarrolladores una serie de funciones estándar.

FastCGI: con FastCGI, las solicitudes dinámicas del servidor web pueden procesarse directamente a través de una interfaz Perl sin tener que iniciar un nuevo proceso. FastCGI es ampliamente compatible con CGI y con gran variedad de servidores web.

¿Le ha resultado útil este artículo?
Page top