PDF de programación - Curso de CGI

Imágen de pdf Curso de CGI

Curso de CGIgráfica de visualizaciones

Publicado el 8 de Junio del 2018
452 visualizaciones desde el 8 de Junio del 2018
143,3 KB
9 paginas
Creado hace 20a (26/07/2003)
Autora: Lola Cárdenas Luque [email protected]
Última actualización: 25 de febrero de 2001

Este curso pertenece a la web:

http://rinconprog.metropoli2000.com/

Curso de CGI

Lola Cárdenas Luque

Curso de CGI

En este curso se explica qué es un CGI, cómo se hacen y qué cosas hay que tener en cuenta. Los temas
a tratar no son demasiado largos, lo que hace de este curso más bien un mini-curso, del que el lector
debe extraer las conclusiones pertinentes y ampliar lo aprendido a base de desarrollar programas
propios.

Capítulo 1

Introducción

Capítulo 2

Las variables de entorno

Capítulo 3

Capítulo 4

El primer C GI: Hola Mundo!

Tratamiento de formularios

Ultima modificación: 25 de febrero de 2001
Autor: Lola Cardenas Luque

http://rinconprog.metropoli2000.com

- 2 -

Curso de CGI

Lola Cárdenas Luque

Curso de CGI

1. Introducción

CGI son las siglas de Common Gateway Interface, o interfaz de pasarela común. Se trata de una
especificación que va a realizar la función de interfaz o pasarela entre el servidor web y los programas,
llamados programas CGI, haciendo uso del protocolo HTTP y el lenguaje HTML. Un programa CGI será
aquel que cumpla la especificación CGI, es decir, interactuará con el servidor de acuerdo a unos
principios establecidos en la especificación. Veamos cómo funciona esto.

Usualmente, cuando un navegador busca un URL, sucede lo siguiente. En primer lugar, el ordenador
cliente contacta con el servidor HTTP. Este busca el fichero solicitado por el cliente y envía ese fichero. El
cliente entonces visualiza el fichero en el formato apropiado.

Ahora bien, es posible instalar el servidor HTTP de forma que cuando un fichero de un directorio
concreto es solicitado, ese fichero no sea devuelto. En lugar de eso, se ejecuta como un programa, y
todo lo que el programa obtiene se envía de vuelta al cliente para ser visualizado. Obviamente, el
directorio en el que están estos programas debe tener permiso de ejecución, así como los programas, y
los permisos de lectura o de lectura/escritura para otros programas que pudieran usarse.

Resumiendo: los programas CGI son programas que se ejecutan en el servidor en respuesta a peticiones
del cliente.

El servidor creará una información especial para el CGI cuando pasa a ejecutarlo, y esperará la
respuesta del programa. Antes de que el CGI se ejecute, el servidor crea un entorno con el que
trabajará el programa CGI. Este entorno comprende la traducción de cabeceras de peticiones HTTP en
variables de entorno a las que podrá acceder nuestro programa. El resultado de la ejecución del
programa suele ser una serie de encabezados de respuesta HTTP y HTML. Estos encabezados son
recogidos por el servidor y enviados al cliente que hizo la petición.

Los programas o scripts CGI pueden escribirse en cualquier lenguaje de programación que sepa manejar
entrada y salida estándar. La elección depende de qué nos gusta más, y un poco de sobre qué sistema
operativo está el servidor. Si el servidor corre bajo una máquina Unix, a buen seguro podremos
programar en C o en Perl (por ejemplo), solicitando al administrador del sistema (si no lo es uno mismo)
que le de los permisos necesarios para poder ejecutar los programas. Si el servidor corre bajo una
máquina Windows, también podremos programar en C o en Perl, esto último si el servidor tiene el
intérprete instalado. Lo que programemos en C tendremos que compilarlo y poner el ejecutable en el
directorio destinado a los CGI. Si usamos Perl o algún otro lenguaje interpretado, no tendremos
necesidad de esto; simplemente pondremos nuestro script en el directorio para los CGI, y cuando se
llame al CGI, el servidor se encargará de ejecutar el intérprete. Lo más recomendable es usar un
lenguaje lo más portable posible, como los dos citados, pues el cambio de sistema operativo afectaría
mínimamente al programa hecho y no tendríamos que cambiar muchas cosas.

En la sección Programas podeis descargar un sencillo servidor para Windows, llamado Xitami, con el que
podeis empezar a hacer vuestros pinitos. Además, es fácilmente configurable. Os recomiendo leer la
documentación que trae, porque cuenta muchas cosas interesantes.

Supongamos que sabemos hacer un programa CGI (cosa que empezaremos a aprender en el siguiente
capítulo), que lo tenemos colocado en el sitio apropiado del servidor, que están claros los permisos para
el programa... : ¿cómo lo llamamos desde una página HTML? Pues para ello tenemos varias
posibilidades:

??Con la directiva <FORM>: si necesitamos que el CGI use la información que nos da un usuario al

rellenar un form, hemos de indicarlo en el parámetro ACTION. Cuando pulsemos SUBMIT se
llamará al programa CGI y se le enviará la información del formulario. Es conveniente que en
ACTION especifiquemos una información válida.

http://rinconprog.metropoli2000.com

- 3 -

Curso de CGI

Lola Cárdenas Luque

??Con la etiqueta <A>. Por ejemplo, <A HREF="/cgi-

bin/fichero.cgi?vble1=valor&vble2=valor">Pulse por aquí</A>

Esto significa que queremos que se ejecute el programa 'fichero.cgi', situado en el directorio
'/cgi-bin' del servidor. Además, al pulsar sobre el enlace se le pasará la información de dos
variables, cuyos nombres son vble1 y vble2, que tomarán los valores respectivos valor y
valor. El programa CGI recibirá la cadena vble1=valor&vble2=valor. Podemos ver que lo que
hay tras el interrogante separa el nombre del programa CGI de los parámetros que va a recibir.
Además, los parámetros y sus valores están separados por un signo igual, =, mientras que dos
parámetros distintos vienen separados por un ampersand, &. Esto es importante de cara a cómo
procesaremos la información que nos llega.

??Con la etiqueta <IMG>. Por ejemplo, <IMG SRC="/cgi-bin/contador.cgi">. Es un ejemplo típico

de llamar a un programa que lleva la cuenta de las visitas, aumenta la cuenta y genera la
imagen correspondiente, retornándola al cliente.

Ultima modificación: 25 de febrero de 2001
Autor: Lola Cardenas Luque

http://rinconprog.metropoli2000.com

- 4 -

Curso de CGI

Lola Cárdenas Luque

Curso de CGI

2. Las variables de entorno

En el capítulo anterior comentábamos que al llamarse a un programa CGI, el servidor creaba un entorno
especial para dicho programa. Este entorno consiste en unas variables de entorno a las que asigna una
serie de valores. Algunas de estas variables (las más usadas) son:
SERVER_SOFTWARE
Formato: nombre/versión

Nos da el nombre y versión del programa servidor que atiende la petición de ejecutar el programa
CGI.

SERVER_NAME

Nos da el nombre de la máquina en la que se ejecuta el programa (el host), bien "traducido" (por
ejemplo, www.unaMaquina.com), bien la dirección IP sin "traducir" (por ejemplo, 135.12.187.2,
igual hasta he acertado O;-) ).

GATEWAY_INTERFACE
Formato: CGI/revisión

Nos da la revisión de la especificación CGI que cumple el servidor.

SERVER_PROTOCOL
Formato: protocolo/revisión

Nos da el nombre y la revisión del protocolo de información con el que se ha creado la llamada al
CGI

REQUEST_METHOD

QUERY_STRING

Nos dice con qué método se ha hecho la llamada. Por ejemplo, si lo llamamos desde un
formularios, contendrá el valor GET o el valor POST.

Variable de entorno en el programa CGI recibe del cliente la cadena con los parámetros y sus
valores. Por ejemplo, puede ser de este tipo: vble1=valor1&vble2=&vble3=valor3 Recibiríamos
esta cadena, y tendríamos que procesarla para usar esa información.

CONTENT_TYPE

Se utiliza en llamadas al CGI que tienen información extra; por ejemplo, en el caso del método
POST, esta variable contiene el tipo de los datos.

CONTENT_LENGTH

Esta variable de entorno nos dice cuántos bytes ocupa la cadena recibida en la variable de entorno
QUERY_STRING. Es necesario saberlo si vamos a reservar memoria para los datos de entrada.

Para más información sobre las variables de entorno, puedes consultar la siguiente dirección:
http://hoohoo.ncsa.uiuc.edu/cgi/env.html

Y en el próximo capítulo, nuestro primer CGI... sí, se trata de... ¡Hola Mundo!... ;-DDDD

Ultima modificación: 25 de febrero de 2001
Autor: Lola Cardenas Luque

http://rinconprog.metropoli2000.com

- 5 -

Curso de CGI

Lola Cárdenas Luque

Curso de CGI

3. El primer CGI: Hola Mundo!

Hemos de recordar que un programa CGI debe generar una salida que ha de ser reconocible por el
cliente que la ha solicitado. Dado que los clientes suelen ser los navegadores, la salida del CGI será
entonces un documento HTML, una imagen en formato GIF, un documento PDF, etc., y esto debe
indicarlo de alguna manera: será enviando una primera línea en la que indique el contenido que va
detrás.

Además, la salida que genera no será un fichero que se grabe en el servidor, sino que será una salida
que irá a la salida estándar, es decir, el programa CGI escribirá "cosas" por la salida estándar y eso será
lo que le llegue al cliente, quien tendrá que interpretarlo: si es un documento HTML lo visualizará, si es
una imagen la cargará, si es un PDF es probable que nos solicite abrir el visor, etc.

Los ejemplos van a hacerse en lenguaje C; este lenguaje nos provee de la función printf para escribir
sobre la salida estándar. Vamos a ver ya el ejemplo del Hola Mundo!:

/* Hola Mundo!
Versión CGI - 20/2/2001 */

int main() {
printf("Content-Type:text/html\n\n");
printf("<HTML><BODY><H2>Hola Mundo!</H2></BODY></HTML>");

return 0;
}

Lo compilamos, lo grabamos en nuestro directorio para los CGI, y lo llamamos desde el navegador. La
forma de hacerlo depende del servidor. Por ejemplo, usando Xitami para Windows, no hace falta que
renombres el fichero .EXE de niguna forma: pa
  • Links de descarga
http://lwp-l.com/pdf11680

Comentarios de: Curso de CGI (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad