Cuando el World Wide Web
inició su funcionamiento como lo conocemos, empezando a tomar
popularidad aproximadamente en 1993, solo se podía apreciar
texto, imágenes y enlaces. La introducción de Plugins en los navegadores permitió mayor
interactividad entre el usuario y el cliente, aunque estaba
limitado por la velocidad y la necesidad de tener que bajar e
instalar cada plugin que se necesitara, por lo que estos se
desarrollaron mayormente en áreas de vídeo, audio y realidad
virtual.
El CGI (Por
sus siglas en inglés "Common Gateway
Interface") cambio la forma de manipular
información en el web.
En sí, es un método para la
transmisión de información hacia un compilador instalado en el
servidor. Su función principal es la de añadir una mayor
interacción a los documentos web que por medio del HTML se
presentan de forma estática.
El CGI es utilizado
comúnmente para contadores, bases de datos, motores de
búsqueda, formulários, generadores de email automático, foros de discusión, chats, comercio
electrónico, rotadores y mapas de imágenes, juegos en
línea y otros.
Esta tecnología tiene la ventaja de
correr en el servidor cuando el usuario lo solicita por lo que
es dependiente del servidor y no de la computadora del
usuario.
De acuerdo a la traducción de la NCSA: "Un documento HTML
es estático, lo que significa que existe en un estado
constante; es un archivo de texto que no cambia. Un script CGI
por otro lado, es ejecutado en tiempo real, lo que permite que
regrese información dinámica. Por ejemplo, digamos que quieres
conectar tus bases de datos de Unix al World Wide Web para
permitir que las personas de todo el mundo la manipulen.
Básicamente, lo que debes hacer es crear un script CGI que
será ejecutado por el servidor para transmitir información al
motor de la base de datos, recibir los resultados y
mostrarselos al cliente. Este es un ejemplo sencillo que
muestra donde el CGI tiene sus origenes".
Los
programas que maneja el CGI
pueden estar compilados en diferentes lenguajes de
programación. El más popular para el desarrollo de contenidos
Web es el lenguaje Perl de
distribución gratuita, aunque también podemos mencionar: C, C++ y Java.
El funcionamiento de esta
tecnología es muy sencillo. Los scripts residen en el
servidor, donde son llamados, ejecutados y regresan
información de vuelta al usuario.
Para una mejor aclaración
presentamos la siguiente gráfica:
Un ejemplo de un
llamado a un script CGI puede ser:
http://www.maestrosdelweb.com/cgi-bin/ejemplo.cgi
Hay
que tomar muy en cuenta que existen dos formas de enviar
información; siendo estas por medio de GET y POST.
El primero envía la
información dentro del URL separando los campos con signos de
interrogación '?' antes de
la información, como por ejemplo:
http://www.maestrosdelweb.com/cgi-bin/ejemplo.cgi?nombre=Christian&cargo=Webmaster
Esta
forma presenta varias desventajas, ya que no permite manejar
grandes cantidades de información y por ser una dirección, los
Caches de los navegadores pueden guardar los resultados, lo
que dificulta el poder acceder nuevamente a la aplicación,
pero simplifica el uso de los scripts con solo utilizar una
dirección URL.
La otra forma de enviar la información es
por medio de POST, el cual
envía la información directamente al servidor, haciendolo
invisible en el URL y permitiendo cualquier cantidad de
información, como el envío de archivos.
Las diferencias
entre GET y POST son primordiales para adaptar
una aplicación y hacerla funcionar.
Así, el siguiente paso luego de de manejar el
diseño de páginas web es aventurarse a estas tecnologías que
darán un nuevo concepto de interacción en un sitio
web.
Existe una grán cantidad de código gratuito
disponible para iniciar, pero es necesario contar con un
servidor adecuado y que soporte esta tecnología, asi como la
modificación de permisos dentro de sus directorios. La forma
más facil de hacer pruebas es con el compilador Perl que viene
incluido en cualquier plataforma Unix o derivada como es el
caso de Linux.
En otras plataformas de 32 bits como Windows puede ser
instaldo el Perl32.
Cualquier consulta sobre CGI será bienvenida a
través de los foros.