ESPECIALIZACION EN GERENCIA MENCIÓN REDES Y  TELECOMUNICACIONES

 Trabajo 3: CGI
Profesora: Beatriz Pérez
Autor: Gabriela Pestana

 

                                      CGI (Common Gateway Interface)

 

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

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

¿Cómo actúa CGI?

A continuación se describe la forma de actuación de un CGI de forma esquemática:

  1. En primera instancia, el servidor recibe una petición (el cliente ha activado un URL que contiene el CGI), y comprueba si se trata de una invocación de un CGI.
  2. Posteriormente, el servidor prepara el entorno para ejecutar la aplicación. Esta información procede mayoritariamente del cliente.
  3. Seguidamente, el servidor ejecuta la aplicación, capturando su salida estándar.
  4. A continuación, la aplicación realiza su función: como consecuencia de su actividad se va generando un objeto MIME que la aplicación escribe en su salida estándar.
  5. Finalmente, cuando la aplicación finaliza, el servidor envía la información producida, junto con información propia, al cliente, que se encontraba en estado de espera. Es responsabilidad de la aplicación anunciar el tipo de objeto MIME que se genera (campo CONTENT_TYPE), pero el servidor calculará el tamaño del objeto producido.

Programación de un CGI

Un programa CGI puede ser escrito en cualquier lenguaje de programación que produzca un fichero ejecutable. Entre los lenguajes más habituales se encuentran: C, C++, Perl, Java, Visual Basic... No obstante, debido a que el CGI recibe los parámetros en forma de texto será útil un lenguaje que permita realizar manipulaciones de las cadenas de caracteres de una forma sencilla, como por ejemplo Perl. Perl es un lenguaje interpretado que permite manipulaciones sencillas de ficheros y textos, así como la extracción y manipulación de cadenas de caracteres, unidas a unas búsquedas rápidas y fáciles.

Intercambio de información: Variables de entorno

Variables de entorno que se intercambian de cliente a CGI:

Variables de entorno que se intercambian de servidor a CGI:

 

Tipos habituales de CGIs

Cuenta el número de veces que se ha solicitado una página determinada. Se guarda el valor en un fichero. Cada vez que se invoca se incrementa, para su posterior visualización.

Localiza páginas que contengan los términos especificados. Utiliza una tabla que enumera las palabras y para cada una especifica las páginas dónde se encuentra.

Obtiene información estructurada del usuario.

Permite añadir enlaces o anotaciones a una página, indicando la procedencia de la adición.

Presenta información sobre los acontecimientos producidos en el servidor de WWW. El servidor mantiene un registro (log) de los acontecimientos que se han producido.

Permite interactuar con el servidor desde WWW. Invoca los programas que controlan o modifican el comportamiento del servidor.

 

Como hemos comentado, el CGI es un programa, de modo que debe ser programado algún lenguaje específico. De hecho son varios los lenguajes de programación a los que podemos recurrir: C, C++, Fortran, PERL, TCL, cualquier Shell Unix, Visual Basic, AppleScript, Java...En los lenguajes compilables, como C o Fortran, deberemos tener en cuenta que el programa tendrá que ser compilado antes de poder ser ejecutado. En estos casos, los códigos fuente para los programas CGI suelen hallarse en el directorio /cgi-src y los ejecutables, como mencionamos antes, se ubican en /cgi-bin. Si, por otro lado, uno usa los denominados scripting languages, como PERL, TCL o la Shell de Unix, el script en sí reside en /cgi-bin ya que no existe un programa fuente asociado.
Muchos programadores prefieren el método de scripts ya que éstos resultan más fáciles de modificar y mantener que los programas compilables.

 

                                                            INFOGRAFÍA

 

(http://www.terra.es/tecnologia/glosario/ficha.cfm?id_termino=9)

 

·        Este enlace permite obtener información sobre un protocolo que reemplaza a CGI

http://es.wikipedia.org/wiki/SCGI

·        Proporciona una información necesaria para ver en  funcionamiento a CGI

http://www.jmarshall.com/easy/cgi/spanish/cgi_footnotes.html#samples

·        Permite visualizar los riesgos de CGI

http://www.iec.csic.es/CRIPTonOMICon/cgi/riesgos.html

·        Como crear un programa (CGI) sencillo para contestar a formularios.

http://www2.uca.es/FAQ-www/formulario.html

 

Hosted by www.Geocities.ws

1