PDF de programación - Tutorial de CGI

Imágen de pdf Tutorial de CGI

Tutorial de CGIgráfica de visualizaciones

Publicado el 19 de Abril del 2018
723 visualizaciones desde el 19 de Abril del 2018
63,3 KB
25 paginas
Creado hace 23a (17/01/2001)
TUTORIAL

DE
CGI

Tutorial de CGI http://www.cybercursos.net



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



2

Tutorial de CGI http://www.cybercursos.net

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



3

Tutorial de CGI http://www.cybercursos.net



VARIABLES DE ENTORNO EN 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



4

Tutorial de CGI http://www.cybercursos.net

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 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



5

Tutorial de CGI http://www.cybercursos.net


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.


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.



6

Así que sólo hay que dividir donde están los signos ‘&’ y ‘=’, y luego hacer dos cosas


“nombre1=valor1&nombre2=valor2&nombre3=valor3”


a cada nombre y valor:

1.Convertir todos los signos ‘+’ a espacios.
2.Convertir todas las secuencias ‘%xx’ al valor del carácter cuyo valor ASCII sea
‘xx’ en hexadecimal. Por ejemplo convertir ‘%3d’ a ‘=’.


URL, para permitir los signos ‘&’, ‘=’, y todo lo que el
  • Links de descarga
http://lwp-l.com/pdf10522

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