PDF de programación - Tutorial de CGI

Imágen de pdf Tutorial de CGI

Tutorial de CGIgráfica de visualizaciones

Publicado el 8 de Junio del 2018
334 visualizaciones desde el 8 de Junio del 2018
463,2 KB
25 paginas
Creado hace 20a (22/07/2003)
Javier E. Pérez Delgado



Javier Pérez Delgado



Tutorial de CGI

INTRODUCCIÓN



El CGI (Common Gateway Interface) es un estandar para comunicar
aplicaciones externas con los servidores de información, tales como servidores HTTP o
Web. Un documento en HTML que el daemon del Web se trae es estático, es decir, se
mantiene constante: un fichero de texto que no cambia. Un programa CGI, por otro lado
es ejecutado en tiempo real, así que puede generar información dinámica.


Por ejemplo, supongamos que quieres enganchar tu base de datos de Unix al
WWW, para permitir a gente de todo el mundo consultarla. Básicamente se necesitará
un programa CGI que el daemon del Web ejecutará para transmitir la información al
gestor de base de datos, y recibir los resultados para presentarselos al cliente. Este es un
ejemplo de pasarela (gateway), y es lo que CGI, actualmente en su versión 1.1, tiene en
sus orígenes.


El ejemplo de la base de datos es una idea sencilla, pero la mayoría de las veces
dificil de implementar. Realmente no hay límite con lo que tu quieras enganchar al
Web. La íunica cosa que debes recordar es que haga lo que haga tu progrma CGI, no
deberá tardar mucho tiempo en procesar. De otra manera, el usuario estaría esperando
con su navegador a que algo pase.

Especificaciones


Como un programa CGI es un ejecutable, es equivalente a dejar a el 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 que
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

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



2

Javier Pérez Delgado



Tutorial de CGI

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.

¿Qué es el directorio cgi-bin?


Este 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 scripst 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.


Nota: No deberemos confundirlo con html analizado (generalmente .shtml)


La configuración de los directorios, o de la extensión mencionada antes, depende
únicamente del servidor. Comprueba la documentación sobre tu servidor, o pregunta a
otro usuario que también lo use.

¿Qué parte es Perl, y qué parte es html?

El formulario que se presenta al usuario está escrito en html, y este llama al script en el
servidor escrito en perl . El script devolverá en la mayoría de los casos código html para
presentar al usuario.



VARIABLES DE ENTORNO EN CGI



3

Javier Pérez Delgado



Tutorial de CGI

El servidor usa tanto de líneas de comando, como variables de entorno para

pasar los datos del servidor al script.


Estas variables de entorno se activan cuando el programa ejecuta el programa

cgi.


Especificación

Las siguientes variables no dependen de la información enviada y son activadas

en todos los casos:


SERVER_SOFTWARE

Devuelve el nombre y la versión del software del servidor de información que

contesta la petición de usuario (y ejecuta el programa cgi).

Formato: nombre/versión.



SERVER_NAME

Devuelve nombre de host del servidor, el alias DNS, o la dirección IP como

aparecería en las URL autoreferenciadas.


GATEWAY_INTERFACE

Devuelve la revisión de la especificación CGI con que el servidor puede

trabajar. Formato: CGI/revisión.



Las siguientes variables de entorno son específicas de la petición de usuario, y

es el programa del gateway el que las da el valor:


SERVER_PROTOCOL

Da el nombre y revisión del protocolo de información con el que la peticion de

usuario viene. Formato: protocolo/revisión.

SERVER_PORT

Devuelve el número de puerto por el cual fue enviada la petición.

REQUEST_METHOD

Devuelve el método por el cual la petición fue enviada. Para HTTP serán

"GET", "HEAD", "POST", etc.


PATH_INFO

La información extra sobre el path, tal como es dada por el cliente. En otras
palabras, podemos acceder a los scripts por su pathname virtual, seguido de alguna



4

Javier Pérez Delgado



Tutorial de CGI

información extra. Esa información extra es enviada como PATH_INFO. La
información será decodificada por el servidor si viene de una URL antes de pasarla al
script CGI.


PATH_TRANSLATED

El servidor proporciona una versión traducida del PATH_INFO, que transforma

el path virtual al físico.


SCRIPT_NAME

Path virtual al script que va a ejecutar, usado para autoreferenciar URL.

QUERY_STRING

La información que sigue al signo ‘?’ en la URL que referencia al script. Es la
información de la pregunta. No deberá ser decodificada de ningún modo. Esta variable
será activada cuando hay una petición de información, sin hacer caso de la
decodificación de la línea de comandos.


REMOTE_HOST

El nombre de host que realiza la petición. Si el servidor no posee esta

información activará REMOTE_ADDR y dejará esta desactivada.


REMOTE_ADDR

La dirección IP del host remoto que realiza la petición.

AUTH_TYPE

Si el servidor soporta autentificación de usuario , y el script está protegido, esta

es el método de autentificación específico del protocolo para validar el usuario.


REMOTE_USER

Si el servidor soporta autentificación de usuario , y el script está protegido, este

será el nombre de usuario con el que se ha autentificado.


REMOTE_IDENT

Si el servidor HTTP soporta autentificación RFC 931 , entonces está variable se
activará con el nombre del usuario remoto obtenido por el servidor. Esta varible solo se
utilizará durante el login.


CONTENT_TYPE

Para peticiones que tienen información añadida, como HTTP POST y PUT, este

será el tipo de datos contenido.



5

Javier Pérez Delgado



Tutorial de CGI

CONTENT_LENGTH

La longitud del contenido tal como es dado por el cliente.


Además, las líneas de la cabecera recibidas por el cliente, si las hay, son
colocadas en el entorno con el prefijo HTTP_ seguido del nombre de la cabecera. Cada
carácter de el nombre de la cabecera se cambia por caracteres _. El servidor puede
excluir algunos caracteres que ya haya procesado, como la autorización.

El tipo de contenido y la longitud de este, pueden ver suprimidas sus cabeceras

si al incluirlos se excede el límite de entorno del sistema.

Un ejemplo de esto es la variable HTTP_ACCEPT que se definió en CGI/1.0.

Otro ejemplo es la cabecera USER_AGENT.



HTTP_ACCEPT

Los tipos MIME que el cliente aceptará, como son dados por las cabeceras
HTTP. Otros protocolos pueden ser necesarios para obtener esa información de algún
otro lugar. Cada elemento de esta lista deberá estar separado por comas por la
especificación HTTP.


Formato: tipo/subtipo, tipo/subtipo

HTTP_USER_AGENT

El navegador que el cliente usa para mandar la petición.

Formato general: software/versión librería/versión.



LEYENDO EL FORMULARIO DE ENTRADA DE

USUARIO



Cuando el usuario envía el formulario, el script recibe los datos como pares
nombre-valor. Los nombres son lo que definimos en las etiquetas INPUT (o las
etiquetas SELECT o TEXTAREA), y los valores aquello que el usuario haya escrito o



6

Javier Pérez Delgado



Tutorial de CGI

seleccionado. (Los usuarios también pueden enviar ficheros con los formularios, pero
no nos ocuparemos de ello.)


Estos pares nombre-valor llegan como una larga cadena que necesitamos
format
  • Links de descarga
http://lwp-l.com/pdf11679

Comentarios de: Tutorial de CGI (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad