fbpx
Wikipedia

Interfaz de entrada común

Interfaz de entrada común (en inglés Common Gateway Interface, abreviado CGI) es una importante tecnología 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 estándar para transferir datos entre el cliente y el programa. Es un mecanismo de comunicación entre el servidor web y una aplicación externa cuyo resultado final de la ejecución son objetos MIME. Las aplicaciones que se ejecutan en el servidor reciben el nombre de CGIs.

Las aplicaciones CGI fueron una de las primeras prácticas de crear contenido dinámico para las páginas web. En una aplicación 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 estático tradicional.

CGI ha hecho posible la implementación de funciones nuevas y variadas en las páginas web, de tal manera que esta interfaz rápidamente se volvió un estándar, siendo implementada en todo tipo de servidores web.

Forma de actuación de 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).

Programación de un CGI

Un programa CGI puede ser escrito en cualquier lenguaje de programación que produzca un archivo ejecutable. Entre los lenguajes más habituales se encuentran: C, C++, Perl, Java, Visual Basic, Cobol... 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

Los siguientes datos son las variables de entorno que pasan por los programas CGI:

  • Variables específicas del servidor:
  • Variables específicas de la petición:
    • SERVER_PROTOCOL — versión HTTP.
    • SERVER_PORT — Puerto TCP.
    • REQUEST_METHOD — nombre del método 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 después del carácter ?. la cadena de consulta puede estar compuesta de *nombre=valor separados por el carácter & (ejemplo: var1=val1&var2=val2…) que se utiliza para enviar datos de un formulario web usando el método GET.
    • REMOTE_HOST — nombre del host del cliente.
    • REMOTE_ADDRdirección IP del cliente.
    • AUTH_TYPE — tipo de identificación.
    • REMOTE_USER variable usada para ciertos tipos de autentificación (AUTH_TYPE).
    • REMOTE_IDENT — variable para identificar algunas conexiones TCP.
    • CONTENT_TYPE — tipo de contenido de la aplicación.
    • CONTENT_LENGTH — tamaño 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 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.
  2. Buscador: Localiza páginas que contengan los términos especificados. Utiliza una tabla que enumera las palabras y para cada una especifica las páginas donde se encuentra.
  3. Correo: Obtiene información estructurada del usuario.
  4. Contribuciones: Permite añadir enlaces o anotaciones a una página, indicando la procedencia de la adición.
  5. Estadísticas de uso: 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.
  6. Administración remota del servidor: Permite interactuar con el servidor desde WWW. Invoca los programas que controlan o modifican el comportamiento del servidor.

Escenario de activación de un CGI

  1. Situación inicial: El cliente solicita la invocación de un CGI, bien de manera involuntaria (se envía únicamente información de cabecera) o bien de forma explícita (formulario). En el formulario hay parejas del tipo variable=valor. El método de HTTP especificado en el formulario puede ser GET o POST.
    En el servidor en cambio, el archivo de configuración 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 CGIs.
  2. El cliente pulsa el botón de tipo SUBMIT en el formulario: Dependiendo del método se construye un mensaje que contiene la información del formulario en la cabecera (para GET) o en el cuerpo del mensaje (para POST). El mensaje se envía al servidor, añadiendo información 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 petición o pone en marcha el programa CGI: El servidor compara la información del mensaje con la que conoce de su fichero de configuración, determinando así la validez de la petición. En realidad el servidor se pregunta: ¿Existe esta URL? ¿Se tienen todos los permisos?.
    Prepara el entorno añadiendo información propia a la comunicada por el navegador del cliente. Si es GET, la información 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 información se coloca en la entrada estándar del CGI. Finalmente se inicia la ejecución del CGI y el servidor espera a que ésta acabe.
  4. Ejecución del CGI: El CGI accede a las variables de entorno. Comprueba o adapta el funcionamiento según el método GET o POST establecido en REQUEST_METHOD: si se tratara de GET, la información estará en QUERY_STRING, mientras que si se trata de POST, se tomará la entrada estándar.

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 añade a su respuesta del CGI una cabecera indicando su tamaño (CONTENT_LENGTH).
  2. El cliente recibe la respuesta: Interpretación de la respuesta. Visualización con el navegador.

Véase también

Bibliografía

  • Sergio Luján Mora (2001). Programación de servidores web con CGI, SSI e IDC (libro completo gratuito en pdf) (1ª edición). Editorial Club Universitario. 
  • Shishir Gundavaram (marzo de 1996). CGI Programming on the World Wide Web (libro completo en html) (en inglés) (1ª edición). O'Reilly & Associates, Inc. 

Enlaces externos

  • Estándar CGI en w3.org.
  • El protocolo SCGI es un reemplazo del protocolo Common Gateway Interface (CGI).
  •   Datos: Q264364
  •   Multimedia: CGI / Q264364

interfaz, entrada, común, para, otros, usos, siglas, véase, inglés, common, gateway, interface, abreviado, importante, tecnología, world, wide, permite, cliente, navegador, solicitar, datos, programa, ejecutado, servidor, especifica, estándar, para, transferir. Para otros usos de las siglas CGI vease CGI Interfaz de entrada comun en ingles Common Gateway Interface abreviado CGI es una importante tecnologia 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 estandar para transferir datos entre el cliente y el programa Es un mecanismo de comunicacion entre el servidor web y una aplicacion externa cuyo resultado final de la ejecucion son objetos MIME Las aplicaciones que se ejecutan en el servidor reciben el nombre de CGIs Las aplicaciones CGI fueron una de las primeras practicas de crear contenido dinamico para las paginas web En una aplicacion 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 estatico tradicional CGI ha hecho posible la implementacion de funciones nuevas y variadas en las paginas web de tal manera que esta interfaz rapidamente se volvio un estandar siendo implementada en todo tipo de servidores web Indice 1 Forma de actuacion de CGI 2 Programacion de un CGI 3 Intercambio de informacion Variables de entorno 4 Tipos habituales de CGI 5 Escenario de activacion de un CGI 6 Vease tambien 7 Bibliografia 8 Enlaces externosForma de actuacion de CGI EditarA continuacion se describe la forma de actuacion de un CGI de forma esquematica En primera instancia el servidor recibe una peticion el cliente ha activado un URL que contiene el CGI y comprueba si se trata de una invocacion de un CGI Posteriormente el servidor prepara el entorno para ejecutar la aplicacion Esta informacion procede mayoritariamente del cliente Seguidamente el servidor ejecuta la aplicacion capturando su salida estandar A continuacion la aplicacion realiza su funcion como consecuencia de su actividad se va generando un objeto MIME que la aplicacion escribe en su salida estandar Finalmente cuando la aplicacion finaliza el servidor envia la informacion producida junto con informacion propia al cliente que se encontraba en estado de espera Es responsabilidad de la aplicacion anunciar el tipo de objeto MIME que se genera campo CONTENT TYPE Programacion de un CGI EditarUn programa CGI puede ser escrito en cualquier lenguaje de programacion que produzca un archivo ejecutable Entre los lenguajes mas habituales se encuentran C C Perl Java Visual Basic Cobol No obstante debido a que el CGI recibe los parametros en forma de texto sera util 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 asi como la extraccion y manipulacion de cadenas de caracteres unidas a unas busquedas rapidas y faciles Intercambio de informacion Variables de entorno EditarLos siguientes datos son las variables de entorno que pasan por los programas CGI Variables especificas del servidor SERVER SOFTWARE nombre y version del servidor web SERVER NAME nombre de equipo del servidor puede ser una direccion IP GATEWAY INTERFACE version CGI Variables especificas de la peticion SERVER PROTOCOL version HTTP SERVER PORT Puerto TCP REQUEST METHOD nombre del metodo HTTP PATH INFO sufijo de la ruta PATH TRANSLATED corresponde a la ruta completa del servidor si PATH INFO esta presente SCRIPT NAME ruta relativa al programa Ejemplo cgi bin script cgi QUERY STRING la parte del URL despues del caracter la cadena de consulta puede estar compuesta de nombre valor separados por el caracter amp ejemplo var1 val1 amp var2 val2 que se utiliza para enviar datos de un formulario web usando el metodo GET REMOTE HOST nombre del host del cliente REMOTE ADDR direccion IP del cliente AUTH TYPE tipo de identificacion REMOTE USER variable usada para ciertos tipos de autentificacion AUTH TYPE REMOTE IDENT variable para identificar algunas conexiones TCP CONTENT TYPE tipo de contenido de la aplicacion CONTENT LENGTH tamano 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 EditarContador de accesos Cuenta el numero de veces que se ha solicitado una pagina determinada Se guarda el valor en un fichero Cada vez que se invoca se incrementa para su posterior visualizacion Buscador Localiza paginas que contengan los terminos especificados Utiliza una tabla que enumera las palabras y para cada una especifica las paginas donde se encuentra Correo Obtiene informacion estructurada del usuario Contribuciones Permite anadir enlaces o anotaciones a una pagina indicando la procedencia de la adicion Estadisticas de uso Presenta informacion sobre los acontecimientos producidos en el servidor de WWW El servidor mantiene un registro log de los acontecimientos que se han producido Administracion remota del servidor Permite interactuar con el servidor desde WWW Invoca los programas que controlan o modifican el comportamiento del servidor Escenario de activacion de un CGI EditarSituacion inicial El cliente solicita la invocacion de un CGI bien de manera involuntaria se envia unicamente informacion de cabecera o bien de forma explicita formulario En el formulario hay parejas del tipo variable valor El metodo de HTTP especificado en el formulario puede ser GET o POST En el servidor en cambio el archivo de configuracion 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 CGIs El cliente pulsa el boton de tipo SUBMIT en el formulario Dependiendo del metodo se construye un mensaje que contiene la informacion del formulario en la cabecera para GET o en el cuerpo del mensaje para POST El mensaje se envia al servidor anadiendo informacion propia del cliente que el propio navegador conoce El cliente queda a la espera de recibir un objeto MIME como respuesta del servidor El servidor recibe el mensaje de peticion o pone en marcha el programa CGI El servidor compara la informacion del mensaje con la que conoce de su fichero de configuracion determinando asi la validez de la peticion En realidad el servidor se pregunta Existe esta URL Se tienen todos los permisos Prepara el entorno anadiendo informacion propia a la comunicada por el navegador del cliente Si es GET la informacion 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 informacion se coloca en la entrada estandar del CGI Finalmente se inicia la ejecucion del CGI y el servidor espera a que esta acabe Ejecucion del CGI El CGI accede a las variables de entorno Comprueba o adapta el funcionamiento segun el metodo GET o POST establecido en REQUEST METHOD si se tratara de GET la informacion estara en QUERY STRING mientras que si se trata de POST se tomara la entrada estandar Se construye un objeto MIME que se enviara al cliente La primera escritura debera anunciar el tipo de objeto CONTENT TYPE tipo subtipo El servidor vuelve al trabajo El servidor anade a su respuesta del CGI una cabecera indicando su tamano CONTENT LENGTH El cliente recibe la respuesta Interpretacion de la respuesta Visualizacion con el navegador Vease tambien EditarFastCGI SCGI WinCGIBibliografia EditarSergio Lujan Mora 2001 Programacion de servidores web con CGI SSI e IDC libro completo gratuito en pdf 1ª edicion Editorial Club Universitario Shishir Gundavaram marzo de 1996 CGI Programming on the World Wide Web libro completo en html en ingles 1ª edicion O Reilly amp Associates Inc Enlaces externos EditarEstandar CGI en w3 org La especificacion CGI 1 1 El protocolo SCGI es un reemplazo del protocolo Common Gateway Interface CGI Datos Q264364 Multimedia CGI Q264364 Obtenido de https es wikipedia org w index php title Interfaz de entrada comun amp oldid 143806903, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos