Aula Macedonia


Curso de Creación de Scripts CGI


Artículo realizado por
David García "Gato".





Capítulo 1.
Introducción


¿Qué es un script CGI?

El CGI (Common Gateway Interface) es un estándar para comunicar aplicaciones externas con los servidores de información, tales como servidores HTTP o Web. Cuando un navegador lee un documento HTML la información es estática, como un libro, no puede modificarse, solo leerse. Pero un programa CGI al ser ejecutado por el navegador puede generar información dinámica y crear HTML en tiempo real, o muchas más opciones, casi ilimitadas.

Los CGI son usados por todos los servidores Web. Un ejemplo son los buscadores, como Ole o Yahoo, programas que buscan lo que tú pides, mediante un CGI. La gestión de passwords para acceder a sitios específicos la hacen los programas CGI. Los libros de visitas, los contadores de visitas, programas que muestran la hora, formularios para enviar datos por la red, etc... Todo eso y mucho más, lo gestionan programas CGI.

Otro ejemplo de lo que pueden hacer podría ser éste: supongamos que quieres enganchar tu base de datos sobre libros de Unix al WWW, para permitir a gente de todo el mundo consultarla. Básicamente se necesitará un programa CGI que el navegador (o más específicamente el daemon del Web) ejecutará para transmitir la información al gestor de base de datos, y recibir los resultados para presentárselos al cliente como HTML. Este es un ejemplo de pasarela (gateway).

El ejemplo de la base de datos es una idea sencilla, pero la mayoría de las veces difícil de implementar. Realmente no hay límite con lo que tu quieras enganchar al Web. La única cosa que debes recordar es que haga lo que haga tu programa CGI, no deberá tardar mucho tiempo en procesarlo porque puede ser que sea tan complejo, y lento, que parezca que nunca termine de ejecutarse el archivo CGI.
 

Explicaciones

Como un programa CGI es un ejecutable, es equivalente a dejar al mundo ejecutar un programa en tu sistema, que no es lo mas seguro a hacer. Por ello existen una serie de precauciones de seguridad que son necesarias de implementar cuando se usan programas CGI. Probablemente la que afectará al usuario típico del Web, es el hecho de que los programas CGI necesitan residir en un directorio especial, así el servidor sabe que tiene que ejecutarlo, en vez de simplemente mostrarlo por pantalla. Este directorio está generalmente bajo el control del webmaster, prohibiendo al usuario medio crear programas CGI. Hay otros métodos para permitir el accesos a scripts CGI, pero depende del webmaster que se te de esta posibilidad. Así que deberás contactar con tu webmaster para consultar la factibilidad de permitirte un acceso a los CGI. Si dispones de una versión del servidor HTTPd NCSA, verás un directorio denominado /cgi-bin. Este es el directorio especial antes mencionado, donde todos los programas CGI residen.

Un programa CGI  se puede escribir en cualquier lenguaje que permita ser ejecutado en el sistema, como:

     C/C++
     Fortran
     PERL
     TCL
     Algún Shell de Unix
     Visual Basic
     AppleScript
     Delphi

Simplemente depende de lo que tengas en tu sistema. Si usas un lenguaje de programación como C o Fortran, como ya sabrás, debes compilar el programa antes de poder ejecutarlo. Si miras en el directorio /cgi-src, encontrarás el código fuente de algunos programas CGI del directorio /cgi-bin. Pero, si usas alguno de los lenguajes interpretados, como PERL, TCL, o un shell de Unix, el script simplemente necesita residir en el directorio /cgi-bin, ya que no tiene un código fuente asociado. Mucha gente prefiere escribir scripts CGI en vez de programas, ya que son más fáciles de depurar, modificar y mantener que un programa típico compilado.  En éste curso vamos a hablar de lo que, a mi parecer, es la forma más sencilla de crear scripts CGI, el PERL en su versión 5. Podrás conseguirlo en http://www.ActiveWare.com aunque, como verás, puede que no lo necesites obligatoriamente, a no ser que quieras probar tus scripts en casa. El PERL es necesario solo para ejecutar los scripts, pero no para crearlos. Puedes ver si lo tienes ya instalado si escribes en la linea de comandos perl -v. Puede que tu empresa, universidad, o simplemente tu sistema, ya lo tengan funcionando.

De todas formas, no te preocupes al oír eso de lenguajes de programación y PERL y cosas de éstas. En éste cursillo voy a explicar cómo crear scripts CGI sin grandes complicaciones.
 

¿Dónde debe ir un script CGI?

Se supone que debe ir en un directorio llamado cgi-bin. Éste es un directorio especial, que contiene los scripts, configurado dentro del servidor HTTP. El servidor conoce que este directorio contiene ejecutables que deberán ser ejecutados y su salida deberá ser enviada al navegador del cliente. No se puede simplemente crear un directorio cgi-bin, el administrador del servidor deberá configurarlo para su uso. Si no está configurado, los scrips serán cargados como simples ficheros de texto.

Algunos servidores están configurados de tal manera que los ficheros con una determinada extensión (generalmente .cgi) son reconocidos como scripts y serán ejecutados como si estuvieran en un directorio cgi-bin sin importar el directorio donde se encuantran. De hecho, la mayoría de servidores de páginas personales lo tienen configurado así. Te recomiendo que hables con el responsable de tu servidor para informarte de ello.
 

¿Solo se usa el Perl o hay también HTML?

Cuando tenemos un script CGI no basta con cargarlo. Debe recibir una serie de datos, como una palabra a buscar o unos comentarios para enviar por e-mail. Es necesario que un código HTML de la web le proporcione dichos datos. Por esto, un script CGI constará de dos partes: el script y un formulario HTML para recogida de datos.

El script CGI puede crear documentos HTML de forma automática y presentárselos al navegador, así que también posee HTML un script escrito en PERL.

Como ves, hay un poco de todo.
 

¿Qué necesito para seguir éste cursillo?

Pues solo necesitas tres cosas. Una de ellas es el PERL, aunque ya he explicado que es opcional. De todas formas puedes ir a http://www.ActiveWare.com y bajártelo, creo que ocupa 1.3 Megas y hay dos versiones, una para Unix y otra para MS-DOS/Windows. Para no tener que hacer otro curso de programación en PERL vamos a usar una librería CGI. Te preguntarás, ¿qué es eso? Pues una amable persona decidió crear un archivo en PERL con las opciones más útiles para usar en el Web. De esta forma solo tendremos que crear una pequeñísima parte del script y aprovechar lo que ya hay hecho. Vamos a usar la librería de Steve Brenner, que podrás obtener pulsando aquí. El fichero se llama cgi-bin.pl y ya explicaré cómo usarlo a su tiempo. Lo último que necesitas es un poco de práctica con ésto de crear script CGI. Te aseguro que es muy sencillo y te permitirá tener infinitas posibilidades con tu Web.




AULA MACEDONIA
a
MACEDONIA Magazine