Sie sind auf Seite 1von 4

Interfaz de entrada comn

Interfaz de entrada comn


Interfaz de entrada comn (en ingls Common Gateway Interface, abreviado CGI) es una importante tecnologa de la World Wide Web que permite a un cliente (navegador web) solicitar datos de un programa ejecutado en un servidor web. CGI especifica un estndar para transferir datos entre el cliente y el programa. Es un mecanismo de comunicacin entre el servidor web y una aplicacin externa cuyo resultado final de la ejecucin son objetos MIME. Las aplicaciones que se ejecutan en el servidor reciben el nombre de CGIs. Las aplicaciones CGI fueron una de las primeras prcticas de crear contenido dinmico para las pginas web. En una aplicacin CGI, el servidor web pasa las solicitudes del cliente a un programa externo. Este programa puede estar escrito en cualquier lenguaje que soporte el servidor, aunque por razones de portabilidad se suelen usar lenguajes de script. La salida de dicho programa es enviada al cliente en lugar del archivo esttico tradicional. CGI ha hecho posible la implementacin de funciones nuevas y variadas en las pginas web, de tal manera que esta interfaz rpidamente se volvi un estndar, siendo implementada en todo tipo de servidores web.

Forma de actuacin de CGI


A continuacin se describe la forma de actuacin de un CGI de forma esquemtica: 1. En primera instancia, el servidor recibe una peticin (el cliente ha activado un URL que contiene el CGI), y comprueba si se trata de una invocacin de un CGI. 2. Posteriormente, el servidor prepara el entorno para ejecutar la aplicacin. Esta informacin procede mayoritariamente del cliente. 3. Seguidamente, el servidor ejecuta la aplicacin, capturando su salida estndar. 4. A continuacin, la aplicacin realiza su funcin: como consecuencia de su actividad se va generando un objeto MIME que la aplicacin escribe en su salida estndar. 5. Finalmente, cuando la aplicacin finaliza, el servidor enva la informacin producida, junto con informacin propia, al cliente, que se encontraba en estado de espera. Es responsabilidad de la aplicacin anunciar el tipo de objeto MIME que se genera (campo CONTENT_TYPE).

Programacin de un CGI
Un programa CGI puede ser escrito en cualquier lenguaje de programacin que produzca un fichero ejecutable. Entre los lenguajes ms habituales se encuentran: C, C++, Perl, Java, Visual Basic... No obstante, debido a que el CGI recibe los parmetros 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 extraccin y manipulacin de cadenas de caracteres, unidas a unas bsquedas rpidas y fciles.

Interfaz de entrada comn

Intercambio de informacin: Variables de entorno


Los siguientes datos son las variables de entorno que pasan por los programas CGI: Variables epecficas del servidor: SERVER_SOFTWARE nombre y versin del servidor web. SERVER_NAME nombre de equipo del servidor, puede ser una direccin IP. GATEWAY_INTERFACE versin CGI. Request specific variables: SERVER_PROTOCOL versin HTTP. SERVER_PORT Puerto TCP. REQUEST_METHOD nombre del mtodo HTTP. PATH_INFO sufijo de la ruta. PATH_TRANSLATED corresponde a la ruta completa del servidor, si PATH_INFO est presente. SCRIPT_NAME ruta relativa al programa. Ejemplo: /cgi-bin/script.cgi. QUERY_STRING la parte del URL despus del carcter ?. la cadena de consulta puede estar compuesta de *nombre=valor separados por el carcter ep (ejemplo: var1=val1&var2=val2) que se utiliza para enviar datos de un formulario web usando el mtodo GET. REMOTE_HOST nombre del host del cliente REMOTE_ADDR direccin IP del cliente. AUTH_TYPE tipo de identificacin. REMOTE_USER variable usada para ciertos tipos de autentificacin (AUTH_TYPE). REMOTE_IDENT variable para identificar algunas conexiones TCP. CONTENT_TYPE tipo de contenido de la aplicacin. CONTENT_LENGTH tamao de los datos de entrada. Las variables que pasan por el agente de usuario del cliente (HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGE, HTTP_USER_AGENT, HTTP_COOKIE etc.) contienen valores de sus correspondientes cabeceras HTTP por lo que sus datos no cambian.

Tipos habituales de CGI


1. Contador de accesos: Cuenta el nmero de veces que se ha solicitado una pgina determinada. Se guarda el valor en un fichero. Cada vez que se invoca se incrementa, para su posterior visualizacin. 2. Buscador: Localiza pginas que contengan los trminos especificados. Utiliza una tabla que enumera las palabras y para cada una especifica las pginas dnde se encuentra. 3. Correo: Obtiene informacin estructurada del usuario. 4. Contribuciones: Permite aadir enlaces o anotaciones a una pgina, indicando la procedencia de la adicin. 5. Estadsticas de uso: Presenta informacin sobre los acontecimientos producidos en el servidor de WWW. El servidor mantiene un registro (log) de los acontecimientos que se han producido. 6. Administracin remota del servidor: Permite interactuar con el servidor desde WWW. Invoca los programas que controlan o modifican el comportamiento del servidor.

Escenario de activacin de un CGI


1. Situacin inicial: El cliente solicita la invocacin de un CGI, bien de manera involuntaria (se enva nicamente informacin de cabecera) o bien de forma explcita (formulario). En el formulario hay parejas del tipo variable=valor. El mtodo de HTTP especificado en el formulario puede ser GET o POST. En el servidor en cambio, el fichero de configuracin especifica un directorio cgi-bin con capacidad para ejecutar programas. Puede haber otros ficheros y otros programas a los que puede acceder tanto el servidor como sus

Interfaz de entrada comn CGIs. 2. El cliente pulsa el botn de tipo SUBMIT en el formulario: Dependiendo del mtodo se construye un mensaje que contiene la informacin del formulario en la cabecera (para GET) o en el cuerpo del mensaje (para POST). El mensaje se enva al servidor, aadiendo informacin propia del cliente que el propio navegador conoce. El cliente queda a la espera de recibir un objeto MIME como respuesta del servidor. 3. El servidor recibe el mensaje de peticin o pone en marcha el programa CGI: El servidor compara la informacin del mensaje con la que conoce de su fichero de configuracin, determinando as la validez de la peticin. En realidad el servidor se pregunta: Existe esta URL? Se tienen todos los permisos?. Prepara el entorno aadiendo informacin propia a la comunicada por el navegador del cliente. Si es GET, la informacin procedente del formulario (parejas variable=valor) se definen en QUERY_STRING. El servidor posteriormente pone en funcionamiento el CGI. Si se trata de POST, la informacin se coloca en la entrada estndar del CGI. Finalmente se inicia la ejecucin del CGI y el servidor espera a que sta acabe. 4. Ejecucin del CGI: El CGI accede a las variables de entorno. Comprueba o adapta el funcionamiento segn el mtodo GET o POST establecido en REQUEST_METHOD: si se tratara de GET, la informacin estar en QUERY_STRING, mientras que si se trata de POST, se tomar la entrada estndar. Se construye un objeto MIME que se enviar al cliente. La primera escritura deber anunciar el tipo de objeto: CONTENT_TYPE: tipo/subtipo. 1. El servidor vuelve al trabajo: El servidor aade a su respuesta del CGI una cabecera indicando su tamao (CONTENT_LENGTH). 2. El cliente recibe la respuesta: Interpretacin de la respuesta. Visualizacin con el navegador.

Bibliografa
Sergio Lujn Mora (2001) (en espaol, libro completo gratuito en pdf). Programacin de servidores web con CGI, SSI e IDC [1] (1 edicin). Editorial Club Universitario. Shishir Gundavaram (marzo de 1996) (en ingls, libro completo en html). CGI Programming on the World Wide Web [2] (1 edicin). O'Reilly & Associates, Inc..

Enlaces externos
Estndar CGI [3] en w3.org. La especificacin CGI/1.1 [4] El protocolo SCGI [5] es un reemplazo del protocolo Common Gateway Interface (CGI).

Referencias
[1] [2] [3] [4] [5] http:/ / hdl. handle. net/ 10045/ 16997 http:/ / oreilly. com/ openbook/ cgi/ http:/ / www. w3. org/ CGI/ http:/ / hoohoo. ncsa. uiuc. edu/ cgi/ http:/ / www. mems-exchange. org/ software/ scgi/

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Interfaz de entrada comn Fuente: http://es.wikipedia.org/w/index.php?oldid=68577362 Contribuyentes: Acevedo, Airunp, Alexquendi, Berus41, Beto X, Didac, Digigalos, Dodo, Edupedro, Emilianogc kc, Equi, Firula, GermanX, House, Ignacio Icke, Irbian, Isha, JMPerez, Jjvaca, JoaquinFerrero, Jondel, JorgeGG, ManuelGR, Mnts, Muro de Aguas, Murphy era un optimista, P.o.l.o., Pabloab, Pathfinder, Pinar, Qwertyytrewqqwerty, Racso, Rjelves, Sbassi, Serlumo, Shooke, Solarstone, Spa karmona, SpeedyGonzalez, Taichi, Tano4595, Virtualo, Xavigivax, 93 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/

Das könnte Ihnen auch gefallen