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.