Acceso a bases de datos
Después de ver un ejemplo es hora de explicar en más detalle cual es la estructura de todo programa CGI.
Introducción
Un CGI recibirá algún tipo de información del navegador a través del servidor. Después de procesarla devolverá algún otro tipo de datos. Pero la salida de estos datos debe seguir una serie de normas.
Como hemos adelantado en el ejemplo, la primera línea debe indicar el tipo de respuesta que estamos dando. Los tres posibles métodos son: Content-type, Location y Status. El más popular es el primero, así que será el que veremos. La forma de usarlo será indicando el tipo mime de los datos que estamos enviando. Los más comunes son:
- Content-type: text/html
- Documento HTML
- Content-type: text/plain
- Texto
- Content-type: image/gif
- Imagen con formato GIF
- Content-type: image/jpeg
- Imagen con formato JPEG
- Content-type: video/mpeg
- Vídeo en formato MPEG
La línea con el tipo MIME, debe ir seguida obligatoriamente de una línea en blanco. La forma de enviar esta línea en blanco dependerá del lenguaje que estemos usando.
Los datos de salida
Después de la cabecera el resto de lo que enviemos serán los propios datos que nos ha pedido el navegador, y deberán ser concordes con el tipo MIME que hemos indicado en la cabecera.
CGIs con argumentos
También es posible pasar argumentos a un CGI igual que lo hacemos con cualquier otro programa. La forma de hacerlo es la siguiente:
<a href="/cgi-bin/cgi?arg1+arg2+arg3">ejecútame</a>
Como vemos el nombre del CGI va separado de los argumentos por una interrogación. Después de ésta podemos poner tantos argumentos como queramos separados por el símbolo +. La forma de recoger estos argumentos desde el código del programa CGI, será la misma que use el lenguaje de programación que estemos usando para recoger los argumentos que se pasan por la línea de comando.
Hay otra forma adicional para pasar argumentos. En general se usa para pasar datos que no varían en las distintas invocaciones del CGI. El método consiste en usar el símbolo / siguiendo al nombre del CGI y antes de la interrogación que indica el comienzo de los argumentos. El texto que haya entre estos dos símbolos será pasada al CGI. Un ejemplo (genérico) de una llamada al CGI usando este mecanismo sería:
/cgi-bin/cgi/informacion_extra?arg1+arg2+arg3
El programa CGI podrá acceder a la información pasada de esta forma a través de la variable de entorno PATH_INFO. El CGI debe acceder a esta varible para obtener los datos pasados. Cómo hacer esto dependerá del lenguaje de programación.