HTMLpointHTMLpoint HTMLpoint.com


 Variables CGI: teoría



Como todos los lenguajes de programación, también los CGI se pueden utilizar como variables de ambiente, 'incluidas' en la hash %ENV. En primer lugar, vamos a ver un listado (por orden alfabético y extraído por el servidor de la red Apache, que se ha instalado en el pc y que se ha utilizado en la redacción de este artículo):

Nombre Descripción - Valor
DOCUMENT_ROOT El directorio root del servidor - /var/www
GATEWAY_INTERFACE La interfaz gateway utilizada - CGI/1.1
HTTP_ACCEPT Los tipos MIME aceptados por el cliente - image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*
HTTP_ACCEPT_CHARSET  El charset ( = colección de caracteres) aceptado - iso-8859-1,*,utf-8
HTTP_ACCEPT_LANGUAGE El lenguaje aceptado - en
HTTP_HOST  El nombre del huésped del servidor- scatolinux.it
HTTP_REFERER Prácticamente se ha introducido de esta forma para llegar a la página del servidor - http://scatolinux.it sin embargo, como este servidor es local y no remoto, se hubiera podido introducir incluso "localhost" o "http://localhost"
HTTP_USER_AGENT El software (browser) utilizado por el visitador - Emacs-W3/4.0pre.14 URL/p4.0pre.14 (i386-debian-linux; X11)
PATH  El path del sistema del servidor - /bin:/usr/bin:/usr/ucb:/usr/bsd:/usr/local/bin
QUERY_STRING  Es decir, la cadena que buscamos. En este caso el valor es nulo porque no se ha indicado ninguna cadena en cuanto el script no es interactivo. Normalmente, la sintaxis para la búsqueda es "nombre-del-cgi?cadena"
REMOTE_ADDR  La dirección IP del visitador - en este caso es 127.0.0.1 porque todo ha tenido lugar en local.
REMOTE_PORT  La puerta con la que el visitador está conectado al servidor - 1240
REQUEST_METHOD  Normalmente puede ser GET o POST (se utilizarán más adelante) - GET
REQUEST_URI La URL solicitada por el visitador - /cgi-bin/getinfo.cgi (getinfo.cgi es el script con el que se han obtenido todas las informaciones)
SCRIPT_FILENAME  El nombre y la localización local del script - /usr/lib/cgi-bin/getinfo.cgi
SCRIPT_NAME  El nombre y la locación remota del script - /cgi-bin/getinfo.cgi
SERVER_ADMIN El nombre del administrador del servidor - webmaster@cgipoint.it, tenéis que descubrirlo vosotros.
SERVER_NAME El nombre del servidor - scatolinux.it [1]
SERVER_PORT La puerta en la que el servidor está escuchando - 80
SERVER_PROTOCOL El protocolo del servidor - HTTP/1.0
SERVER_SOFTWARE  El software y los posibles módulos en marcha en el servidor - Apache/1.3.3 (Unix) Debian/GNU PHP/3.0.5 mod_perl/1.16
CONTENT_TYPE La variable de la query puede ser HTTP POST o PUT
CONTENT_LENGHT La longitud del contenido de la query a la que nos referimos arriba.

Las últimas dos variables han sido separadas de las demás porque con un CGI que trae las variables de %ENV en condiciones normales, estas dos variables no aparecen porque están reservadas a las query. Si hubieramos escrito un CGI con una query, entonces hubieran aparecido incluso las query.

Éste es un listado parcial de las variables porque cada servidor tiene las suyas. Por ejemplo, si utilizamos Apache 1.3 habrá variables del tipo 'keepalive', 'downgrade-1.0' (siempre si se colocan en el archivo de configuración) etc. Para más informaciones sobre estas variables, se puede leer la documentación del propio servidor. Hay que fijarse en otra cosa. Algunas de estas variables nos informan sobre el servidor y, consecuentemente, no cambiarán según el CGI (entre otras, SERVER_NAME, SERVER_ADMIN ecc.). Otras sirven para esbozar informaciones sobre el visitador (HTTP_USER_AGENT, REMOTE_ADDR, REMOTE_HOST ecc.), otras se refieren a la query en cuestión, otras a la máquina en la que está instalado el servidor.

Todas estas variables están en el hash %ENV y se controlan automáticamente por cada CGI: basta solamente con invocarlas. Este particular array es una variable de perl que incluye las variables del ambiente. Por ejemplo, con un simple script Perl se puede ver el directorio principal del usuario que ha puesto en marcha el script, indicando $ENV{HOME}.


  Volver al inicio de la página