Introducción a los CGI |
|
Los scripts CGI pueden generar documentos WML cuyo contenido varie dependiendo de los argumentos que se le pasen o de determinadas condiciones. De esta forma podemos hacer accesos a bases de datos, realizar compras, etc.
Al diseñar un CGI hay que crear la parte que el usuario ve, el programa y el resultado que se le presenta al usuario, es decir, el CGI debe crear la página WML que posteriormente verá el usario.
Los CGI se suelen construir con lenguajes de Script, aunque se puede utilizar cualquier lenguaje, y el más utilizado es el Perl, que será el lenguaje que utilizaremos en la mayoría de los ejemplos. Si no conoceis el lenguaje Perl aqui teneis un buen tutorial de castellano.
Los pasos que sigue el CGI en su funcionamiento son:
Hay que tener en cuenta los siguientes puntos:
Como vemos, un CGI recibe unos datos, los procesa y devuelve otros datos (que pueden ser una página WML, imagen wbmp, página HTML, imagen jpeg, etc.). Debe quedar claro que el usurio no puede interactuar directamente con el programa CGI y para obtener ese efecto hay que usar apropiadamente el lenguaje de programación de páginas (WML en nuestro caso) y hacer llamadas a uno o varios CGI's.
La principal diferencia de un CGI con respecto a un programa WMLScript, es que el primero se ejecuta en el servidor y el segundo en el terminal WAP. Si pensamos hacer algo sencillo que puede ser hecho mediante WMLScript, es preferible usarlo antes que utilizar un CGI, pero esto no siempre es posible, por ejemplo, cuando queramos acceder a una base de datos o a cualquier otra fuente de datos del servidor como es un fichero. También hay que tener en cuenta que el programa WMLScript puede llegar al usuario el programa CGI llega nunca al terminal del usuario.
Para poder usar CGIs el servidor Web en el que tenemos nuestras páginas debe cumplir algunos requisitos. Además, generalemente, necesitaresmo permiso para usar nuestros propios CGIs. Para saber lo que tenemos que hacer en nuestro caso concreto tenemos que preguntar el encargado de mantener el sitio Web (el WebMaster).
Si tienes acceso a un servidor Web con posibilidad de albergar CGIs una vez hayas programado uno tendr´s que incluirlo en un directorio dedicado a almacenar este tipo de programas, Tu WebMaster te dirá que directorio del sistema será. Una vez dejados en su lugar correspondiente, serán accesibles mediante una URL.
En lo que se refiere a la programación del CGI, es aconsejable tener experiencia anterior en programación
En el caso de que tú seas el WebMaster del sistema deberás configurar el servidor Web para permitir CGI que devuelvan páginas WML. Para que un servidor pueda ejecutar CGI, hay que configurar adecuadamente el daemon.
En general, los scripts deben estar en un directorio concreto reservado para los mismos, de forma que si el URL indica un fichero en ese directorio, el servidor ve que es un programa y no una página HTML.
Si utilizamos el servidor del CERN, debemos editar el fichero httpd.conf, donde encontraremos una linea del tipo:
Exec /cgi-bin/* /home/www/cgi-bin/*
Puede haber varias líneas de este tipo, indicando que en esos directorios
se pueden colocar los CGI.
La segunda parte de la línea es el nombre a usar para llamar a los CGI en las URL. La tercera parte es el camino físico en el disco donde estará los CGI.
Si utilizamos el servidor de NCSA, en el fichero srm.conf debemos añadir una línea del tipo:
ScriptAlias /cgi-bin/ /home/www/cgi-bin/
Para configurar el servidor Apache para que permite servir páginas para móviles WAP, se ha de editar el fichero srm.conf (normalmente esta en /etc/httpd/conf/ ) y se debe añnadir las siguientes líneas en la seccion AddType (en las ultimas versiones del Apache, toda la configuracion se hace en el fichero httpd.conf):
# MIME Types for WAP AddType text/vnd.wap.wml .wml AddType text/vnd.wap.wmlscript .wmls AddType application/vnd.wap.wmlc .wmlc AddType application/vnd.wap.wmlscriptc .wmlsc AddType image/vnd.wap.wbmp .wbmpLas extensiones se corresponde a WML, WML Script, las versiones compiladas de ambos tipos y a gráficos wbmp.
En los CGI hay una seri de variables de entorno a las que podemos acceder y que pueden sernos de utilidad, dichas variables de entorno son la siguientes:
VARIABLE | SIGNIFICADO |
---|---|
SERVER_NAME | Dirección IP del host donde está el CGI. |
SERVER_SOFTWARE | Tipo de servidor Web que se está usando. |
GATEWAY_INTERFACE | Versión del interfaz CGI. |
SERVER_PROTOCOL | Versión del protocolo HTTP. |
SERVER_PORT | El puerto TCP que se está usando. En la mayoría de servidores Web es el 80. |
REQUEST_METHOD | Método de envío de información: POST o GET. |
HTTP_ACCEPT | Lista de los tipos MIME (content-types) que acepta el navegador. |
HTTP_USER_AGENT | El navegador usado por el usuario. |
HTTP_REFERER | Dirección URL del documento HTML donde estaba el formulario. |
PATH_INFO | Información extra |
PATH_TRANSLATED | La variable PATH_INFO adaptada al sistema específico donde está el CGI. |
SCRIPT_NAME | Nombre del CGI. |
QUERY_STRING | Argumentos pasado al CGI. |
REMOTE_HOST | Nombre del ordenador que envió los datos. |
REMOTE_ADDR | Dirección IP de dicho ordenador. |
REMOTE_USER | Nombre del usuario. |
REMOTE_IDENT | Sirve para el método de identificación ident. |
CONTENT_TYPE | Tipo de información que llega por la entrada estándar. Por defecto será: x-www-form-urlencoded. |
CONTENT_LENGTH | Longitud de los datos que llegan por la entrada estándar cuando hemos usado POST. |
Grupo GeNeura. http://geneura.ugr.es |
Departamento de Arquitectura y Tecnología de los Computadores. |
Universidad de Granada |