ESPECIALIZACION EN GERENCIA MENCIÓN REDES Y TELECOMUNICACIONES
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.
A
continuación se describe la forma de actuación de un CGI de forma esquemática:
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.
Variables
de entorno que se intercambian de cliente a CGI:
Variables
de entorno que se intercambian de servidor a CGI:
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
http://www2.uca.es/FAQ-www/formulario.html