Common Gateway Interface. La web estática
Enviado por Lic101 • 12 de Agosto de 2012 • 1.897 Palabras (8 Páginas) • 395 Visitas
CGI: Common Gateway Interface
1. La web estática
Inicialmente la web se basaba solamente en el protocolo HTTP, que permitía a los clientes solicitar páginas en HTML al servidor y estos devolvían los archivos solicitados al cliente, este modelo es poco flexible ya que es estático, por ejemplo si se quería presentar la información de una base de datos, se debía generar una página .html para presentar cada uno de los registros solicitados, otra limitante es que no se podían actualizar los registros por los clientes.
2. Aplicaciones del lado del servidor
Son aplicaciones que reciben las solicitudes del lado del cliente y las procesa para luego enviarle nuevamente una respuesta al cliente, pero ¿por qué se le dice del lado del servidor? Simplemente porque es un programa “en cualquier lenguaje” que resuelve problemas complejos, por ejemplo el manejo de bases de datos, eliminación de archivos, manejo de sesiones, calculo de distintos tipos, etc. y está alojado en el servidor.
1.1 ¿Cómo funcionan?
Cuando un usuario introduce información en un formulario de una página Web, esta es enviada al servidor pero usualmente necesita ser procesada por una aplicación extra por lo que el servidor web la envía al servidor de aplicaciones donde está el programa que va a procesar los datos que vienen del lado del cliente para finalmente devolver al usuario (mediante el servidor Web). Este método o convención de pasar y recibir información entre un servidor Web y servidor de aplicaciones es lo que se conoce como CGI, el cual forma parte del protocolo HTTP.
3. Introducción a CGI
Las limitaciones presentadas en la web estática se resuelven con la aparición de CGI, este estándar va a permitir al servidor interactuar con un programa que es el encargado de procesar la respuesta al cliente.
De esta forma la funcionalidad del servidor web pasa a no tener limitaciones, pudiéndose ampliar su funcionalidad con el uso de los archivos cgi.
La sigla CGI viene de Common Gateway Interface y como el nombre lo indica corresponde a la definición de la interfaz entre los servidores web y las aplicaciones que se ejecutan en el servidor.
Una vez realizada la petición al servidor web, el script se ejecuta en tiempo real y luego devuelve una respuesta al servidor quien la verifica y dependiendo del tipo de respuesta ejecuta diferentes acciones.
Estándar CGI: Permite a los servidores HTTP generar contenido en forma de paginas Web a partir de archivos ejecutables, independiente de la arquitectura del lado del servidor.
Aplicación CGI: Los archivos ejecutables invocados por el servidor son programas, no necesariamente aplicaciones, pueden ser desde un script del sistema operativo, hasta programas de alto nivel o librerías cargadas dinámicamente.
Para la creación de aplicaciones CGI se puede emplear cualquier lenguaje que desee mientras que el sistema operativo lo soporte. El desarrollador debe programar la aplicación CGI para recibir y procesar parámetros de la petición.
Un CGI permite comunicar un servidor HTTP con una aplicación externa para generar de manera dinámica documentos HTML. Los programas en CGI extienden funcionalidad al servidor Web, estas aplicaciones pueden estar construidas en cualquier lenguaje, los lenguajes más comunes son Perl y C, el uso de CGI fue la primera forma de hacer aplicaciones del lado del servidor.
4. ¿Dónde están las aplicaciones CGI?
Para almacenar estas aplicaciones es necesario un servidor web que sea eficiente y seguro, Apache por ejemplo, dentro de él consiste se va a designar un único directorio donde se almacenarán todas las aplicaciones en CGI, típicamente el directorio cgi-bin, con privilegios limitados, de manera que los usuarios locales no puedan instalar, eliminar ni editar programas, esto va a permitir:
Facilidad de seguir la pista a los CGIs, especialmente en servidores con muchos usuarios, con capacidad de escribir sus propios CGIs. Si cada uno los almacenase en su propio directorio y se produjera una brecha de seguridad, sería más difícil localizar al culpable.
Protección frente a hackers creando sus propios CGIs, ya que aunque puedan acceder a la cuenta de un usuario no gozarán de privilegios para poner su propio CGI, cosa que sí podrían hacer si se ejecutasen como CGI los programas de una extensión determinada.
Permite borrar completamente y cómodamente todas las copias de seguridad, ya que están agrupadas en un único directorio y no hay que rastrearlas por todo el servidor.
5. Envío de los datos
El usuario puede indicar al servidor que quiere invocar un programa que se encuentra en el servidor, indicando su localización y pasándole unos parámetros. El servidor, ante la llegada de la petición del usuario, intenta localizar el programa en cuestión y una vez localizado, le transmite los parámetros, así como otro tipo de información, por medio de variables de entorno, para lograr esto se realizan los siguientes pasos:
Primer paso: Acceso al formulario en donde se definen los campos sus tipos, y el programa que se ejecutará cuando se envíen los datos.
Segundo paso: Envío de los datos.
Tercer paso: Invocación de la ejecución del programa referenciado (en el ejemplo, correspondiente al programa A). Esta invocación es hecha por el servidor HTTP, quien le traspaso los datos recibidos del cliente.
Cuarto paso: Generar la salida que típicamente es un documento HTML, que será enviado al cliente.
Imagen 1 – Envío de los datos
6.1 Envío de los datos en un diagrama de secuencia
Imagen 2 – Diagrama de secuencia del envío de los datos
1. Al usuario se le presenta a través de su navegador una página en formato HTML que contiene un formulario, codificado mediante las etiquetas <FORM> y </FORM>. Una vez que el usuario ha rellenado los campos del formulario, pulsa el botón de enviar, que invoca al programa CGI en el servidor.
2. Los datos del formulario se envían al servidor utilizando bien el método POST o el método GET.
3. La petición llega al servidor http-d a través de la red Internet, donde la aplicación CGI invocada por el servidor http-d procesa la petición.
4. Una vez convenientemente procesados, el programa CGI debe ejecutar alguna acción o generar
...