Programación de Scripts CGI
Filosofía general
- El CGI (Common Gateway Interface) es un método
para permitir la interacción de programas ejecutables entre el cliente
y el servidor.
- Los scripts (guiones) son grupos de instrucciones ejecutables
localizados en el servidor y que pueden ser invocados desde HTTP.
- La ejecución del script en el servidor produce
como resultado un proceso computacional cuyo producto es enviado al cliente
también en protocolo HTTP.
- Cualquier lenguaje capaz de producir un ejecutable puede
servir para redactar scripts (desde el lenguaje BATCH del DOS hasta Java).
Activación de los Scripts

- El proceso completo de activación de un script
es el siguiente:
- Una etiqueta ancla que referencia a un script específico
se activa en el cliente.
- Como cualquier otra URL referenciada, se la solicita
al servidor, probablemente transmitiendo también algún tipo
de parámetro modificador.
- El servidor recibe el reclamo, interpreta que el mismo
establece una ruta hacia el script, y lo ejecuta con los parámetros
recibidos.
- La ejecución del script produce algún tipo
de resultado.
- El resultado es enviado al cliente en un formato que
permite ser desplegado por el visualizador.
- La determinación de que el servicio reclamado
es la ejecución de un script se basa principalmente en la ruta del
archivo referenciado.
- Para evitar problemas de seguridad, normalmente los scripts
accesibles se ubican en un subdirectorio cgi-bin
del directorio del servidor.
- Permitir el acceso a cualquier ejecutable del servidor
sería peligroso por el uso negligente o malintencionado.
Un ejemplo
Para poder consultar la hora en la máquina del server
desde nuestra página, podemos incluír el siguiente ancla:
<A HREF="http://www.proveedor.com/cgi-bin/hora">
La hora en la máquina server de nuestro proveedor de Internet </A>
El script del servidor, escrito en un .bat en el mismo,
es:
| Contenido del archivo
c:/../server/cgi-bin/hora.bat |
echo Content-type: text/html
echo "<HTML>"
echo "<HEAD> La hora en Proveedor </HEAD>"
echo "<BODY><H2>La hora es </H2>"
echo "<PRE>"
time
echo "</PRE></BODY></HTML>" |
- La primer línea corresponde al descriptor MIME
(Multipurpose Internet Mail Extensions), adoptado por HTTP como protocolo
para transferir archivos que no sean texto llano.
- Si la respuesta del script fuese una
imagen en jpg, entonces el descriptor debe ser
Content-type: image/jpeg
- El resto del script transmite el contenido de una página
Web como si fuera un archivo.
Entorno de ejecución de los Scripts
Durante el pedido de activación de un script, en
el proceso generado en la máquina cliente se actualizaron los valores
de dos variables:
|
QUERY_STRING |
Contiene los datos enviados como parámetros
por el cliente, por ejemplo al llenar un formulario
electrónico. |
|
REMOTE_ADDR |
La dirección de IP del cliente. |
- Supongamos que confeccionamos una planilla para que quien
acceda registre su nombre con algún propósito ulterior.
- El cliente completa el formulario y lo envía,
transmitiéndose el query_string a continuación del URL del
script (separado por un ?).
<A HREF="/cgi-bin/ingresar?nombre=sunombre>
- El script debe estar en condiciones de extraer los parámetros
necesarios del query-string.

Ir a página principal.
Página anterior (Inclusión
de Paneles).
Continuar (Inclusión de Formularios).