CGI (Commnon Gateway Interface) permite ejecutar programas en un
servidor web.
CGI proporciona un canal consistente e independiente del lenguaje de
programación, para el acceso remoto a bases de datos o aplicaciones.
CGI es el medio que tiene un servidor que habla HTTP para comunicarse con un
programa.
La idea es que cada cliente y programa servidor (independientemente del sistema
operativo) tengan los mismo mecanismos para intercambiar datos, y que esos
mecanismos los implemente de alguna forma el programa que hace de gateway (pórtico).
Un gateway es un programa que actúa como intermediario entre el servidor HTTP y
otro programa que puede ser ejecutado por medio de la línea de comandos (por
ejemplo, una base de datos relacional).
Una transacción con CGI realiza los siguientes pasos:
- El cliente envía al servidor una petición respetando el formato estándar
de una URL (este incluye el tipo de servicio y la ubicación del mismo).
Además se envia un encabezado con los datos del cliente.
- El servidor procesa la petición cuando llega y dependiendo del tipo de
servicio solicitado decide que hacer luego.
Si se solicita una página HTML, la devuelve.
Si se solicita un programa CGI:
- Envia al programa gateway, si existe, el encabezado de datos del
cliente. Estos datos son pasados al programa como variables de
entorno (
$ENV{}
en Perl).
- Los parámetros de ejecución del programa, si existen, son tomados
por el programa. Estos datos se pueden pasar por medio de variables
de entorno (
$ENV{QUERY_STRING}
) o por la entrada estándar (< STDIN>
).
La forma en la que el cliente debe enviar los datos la decide
el programador del gateway.
- El programa CGI devuelve una respuesta, como un documento HTML al
servidor. El programa CGI siempre debe devolver una respuesta. Los datos
deben estar precedidos por un encabezado que respete las convenciones
MIME, indicando el tipo de datos devuelto en la cabecera.
- La salida es devuelta al cliente por el servidor y se corta la
comunicación.
Casiano Rodríguez León
Programación Distribuida y Mejora del Rendimiento
por
Casiano Rodríguez León
is licensed under a Creative Commons Reconocimiento 3.0 Unported License.
Permissions beyond the scope of this license may be available at
http://campusvirtual.ull.es/ocw/course/view.php?id=44.
2012-06-19