Interfaz de entrada común

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.

Contenido

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

  1. QUERY_STRING: Es la cadena de entrada del CGI cuando se utiliza el método GET sustituyendo algunos símbolos especiales por otros. Cada elemento se envía como una pareja Variable=Valor. Si se utiliza el método POST esta variable de entorno está vacía.
  2. CONTENT_TYPE: Tipo MIME de los datos enviados al CGI mediante POST. Con GET está vacía. Un valor típico para esta variable es: Application/X-www-form-urlencoded.
  3. CONTENT_LENGTH: Longitud en bytes de los datos enviados al CGI utilizando el método POST. Con GET está vacía.
  4. PATH_INFO: Información adicional de la ruta (el "path") tal y como llega al servidor en el URL.
  5. REQUEST_METHOD: Nombre del método (GET o POST) utilizado para invocar al CGI.
  6. SCRIPT_NAME: Nombre del CGI invocado.
  7. SERVER_PORT: Puerto por el que el servidor recibe la conexión.
  8. SERVER_PROTOCOL: Nombre y versión del protocolo en uso. (Ej.: HTTP/1.0 o 1.1)

Variables de entorno que se intercambian de servidor a CGI:

  1. SERVER_SOFTWARE: Nombre y versión del software servidor de www.
  2. SERVER_NAME: Nombre del servidor.
  3. GATEWAY_INTERFACE: Nombre y versión de la interfaz de comunicación entre servidor y aplicaciones CGI/1.12

Tipos habituales de CGIs

  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 dónde 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 fichero 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

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужен реферат?

Mira otros diccionarios:

  • Interfaz (electrónica) — Se ha sugerido que este artículo o sección sea fusionado en Puerto (informática) (discusión). Una vez que hayas realizado la fusión de artículos, pide la fusión de historiales aquí. En electrónica, telecomunicaciones y hardware, una interfaz es… …   Wikipedia Español

  • Política común de seguridad y defensa de la UE — La política común de seguridad y defensa (PCSD, anteriormente Política Europea de Seguridad y Defensa, PESD) es la actuación planificada en el seno del Consejo, así como su diseño estratégico, que la Unión Europea despliega de manera autónoma en… …   Wikipedia Español

  • Red de computadoras — Saltar a navegación, búsqueda Una red de computadoras, también llamada red de ordenadores o red informática, es un conjunto de equipos (computadoras y/o dispositivos) conectados por medio de cables, señales, ondas o cualquier otro método de… …   Wikipedia Español

  • Simple Common Gateway Interface — o SCGI ( interfaz de entrada común simple ) es un protocolo que fue creado como alternativa al protocolo Common Gateway Interface (CGI). Es un estándar para aplicaciones que utilizan interfaces con servidores HTTP. Es muy similar al protocolo… …   Wikipedia Español

  • Kenbak-1 — El computador Kenbak 1 es considerado el primer “ordenador personal” disponible comercialmente. Esta designación le fue otorgada por el Computer History Museum en el año 1987 a través de un concurso realizado con el objetivo de registrar la… …   Wikipedia Español

  • Escáner de computadora — Saltar a navegación, búsqueda Un par de escáneres planos. Un escáner de computadora (escáner proviene del idioma inglés scanner) es un periférico que se utiliza para convertir, mediante el uso de la luz, imágenes impresas a formato digital. Los… …   Wikipedia Español

  • Nokia N85 — En este artículo se detectó el siguiente problema: Carece de fuentes o referencias que aparezcan en una fuente acreditada. Por favor, edítalo para mejorarlo, o debat …   Wikipedia Español

  • Joystick Atari — Interfaz de Joystick Atari Tipo Puerto de entrada de joystick Historia de producción Diseñador …   Wikipedia Español

  • SDRAM — Saltar a navegación, búsqueda Memoria SDRAM. Synchronous dynamic random access memory (SDRAM) es la dynamic random access memory (DRAM) que tiene una interfaz sincrónico. Tradicionalmente, la memoria dinámica de acceso aleatorio (DRAM) tiene una… …   Wikipedia Español

  • Microcontrolador — Motorola 68HC11 y chips de soporte. Un microcontrolador (abreviado μC,UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”