Uno de los primeros mecanismos para generar contenido dinámico para la web es el API llamado CGI (acrónimo de common gateway interface, interfaz de pasarelas común). Éste es un mecanismo muy simple que permite que un servidor web ejecute un programa escrito en cualquier lenguaje de programación (ya sea como respuesta a un formulario HTML, a partir de un enlace, etc.), que le pueda pasar unos parámetros (bien provenientes del usuario, vía formularios, bien parámetros de configuración del servidor, del entorno de ejecución, etc.) y, finalmente, hace posible que el resultado de la ejecución de este programa sea enviado al usuario como una página web o cualquier otro tipo de contenido (un gráfico, etc.).
Gracias a este sencillo mecanismo, las páginas web, que hasta el momento de la aparición de CGI tenían unos contenidos estáticos e inmutables, son generadas dinámicamente en respuesta a peticiones concretas. Se abre así un nuevo mundo a los programadores de aplicaciones web. Estudiaremos a continuación el API de CGI, el cual ha quedado relegado en muchos casos a un papel secundario, pues adolece de muchos problemas, siendo la falta de rendimiento el más destacado de todos.
5.1.1. Introducción a los CGI
Al contrario de lo que sucede con los Servlets, etc., no existe ningún tipo de limitación al lenguaje de programación que podemos utilizar para escribir un CGI. Podemos usar desde scripts escritos en el lenguaje de la shell del sistema operativo hasta programas escritos en ensamblador, pasando por todo el abanico de lenguajes de programación existentes: C, C++, Perl, Python, etc. Hasta ahora, el lenguaje más popular para la escritura de CGI es Perl, ya que proporciona utilidades al programador que simplifican sobremanera la tarea de escribir programas CGI.
Comunicación con los CGI
Lo primero que debemos recordar a la hora de escribir programas como CGI es el mecanismo de comunicación que nos proporciona el servidor web. Disponemos de dos opciones para enviar datos a un CGI (los datos generalmente procederán de un usuario, por norma general a partir de un formulario):
• Método GET. El método GET pasa toda la información (excepto ficheros) al CGI en la línea de dirección de la petición HTTP.
• Método POST. El método POST pasa toda la información al CGI en la entrada estándar, incluyendo ficheros.
Una vez recibe una petición que debe dirigir a un fichero CGI, el servidor ejecuta este programa, el CGI, y le envía la información a través de variables de entorno (o a través de la entrada estándar, si fuese pertinente). Algunas de las variables de entorno definidas por el estándar CGI son:
-SERVER_NAME Nombre del servidor.
-SERVER_PROTOCOL Protocolo utilizado por la petición.
-REQUEST_METHOD Método utilizado para la invocación (GET o POST).
-PATH_INFO Información de la ruta especificada en la petición.
-PATH_TRANSLATED Ruta física a la ubicación del CGI en el servidor.
-SCRIPT_NAME Nombre del CGI.
-REMOTE_ADDR Dirección IP del ordenador que realiza la petición.
-REMOTE_HOST Nombre del ordenador que realiza la petición.
-REMOTE_USER Usuario que realiza la petición.
-AUTH_TYPE Tipo de autentificación.
-CONTENT_TYPE Tipo MIME del contenido de la petición, especialmente útil en peticiones POST.
-CONTENT_LENGTH Tamaño del contenido especialmente útil en peticiones POST.
La mayoría de servidores web proveen además de la variable de entorno llamada QUERY_STRING, que contiene los datos de la petición si ésta ha sido de tipo GET o si hemos añadido datos a la URL.
Algunos servidores web añaden datos extra al entorno. La mayoría de estas variables adicionales empiezan con HTTP_ para evitar conflictos con versiones posteriores del estándar.
Fuente:
Desarrollo de aplicaciones web
Carles Mateu
UOC
Si quieres conocer otros artículos parecidos a CGI puedes visitar la categoría DESARROLLO.
Deja una respuesta