Conceptos Fundamentales de CGI y su Uso con Formularios

Clasificado en Informática

Escrito el en español con un tamaño de 4,01 KB

¿Qué es CGI?

Un CGI (Common Gateway Interface) es un programa que se ejecuta en tiempo real en un servidor web en respuesta a una solicitud de un navegador. Cuando esto sucede, el servidor web ejecuta un proceso hijo que recibirá los datos que envía el usuario (en caso de que los haya), pone a disposición del mismo algunos datos en forma de variables de entorno y captura la salida del programa para enviarla como respuesta al navegador. El propósito del CGI es proveer inteligencia e interactividad a un sitio web.

Ejemplo de Código CGI en C

El cuerpo básico de un CGI en lenguaje C es:

/* Programa Hola Mundo */
/* Compilar en linux con: gcc hola.c -o hola.cgi */

#include <stdio.h>

int main(){
   printf("Content-Type: text/html\n\n");
   printf("<html>Hola Mundo</html>\n");
   return(0);
}

Ciclo de Vida de una Solicitud CGI

  • El cliente web solicita un servicio de una aplicación CGI.
  • El servidor HTTP recibe la solicitud y los datos de entrada.
  • El servidor crea un entorno y establece variables de entorno con los datos de entrada.
  • El servidor ejecuta la aplicación CGI en este entorno.
  • La aplicación CGI procesa las variables de entorno y recupera los datos de entrada.
  • La aplicación CGI se ejecuta produciendo un resultado sobre su salida estándar.
  • El servidor HTTP redirecciona la salida estándar de la aplicación CGI hacia el cliente web.
  • El cliente web recibe el resultado de su consulta.

CGI y Formularios Web

Los formularios son un elemento esencial del CGI. Los formularios permiten introducir en un cliente web información estructurada que puede utilizarse como datos de entrada de una aplicación CGI. Para el soporte de formularios, el lenguaje HTML permite la definición de distintos tipos de campos. La sintaxis del marcador de formulario es la siguiente:

<FORM METHOD="método" ACTION="URL del CGI">

Procesamiento de Datos de Formulario

Una de las funciones más importantes del CGI es el proceso de datos ingresados por el visitante al rellenar un formulario. La funcionalidad de formularios de HTML es la forma más común de llevar datos del usuario a un programa CGI. Ofrece la posibilidad de entrada de datos por parte del usuario mediante diversos tipos de elementos de formulario, como cuadros de texto, botones de opción, casillas de verificación, y gráficos.

Métodos de Recepción de Datos

El CGI puede recibir el contenido de un formulario de dos maneras básicas:

  1. Mediante la variable de entorno QUERY_STRING.
  2. Mediante la entrada estándar, en cuyo caso la variable de entorno CONTENT_LENGTH indicará la longitud de la cadena que se debe leer.

Formato de los Datos Recibidos

Cuando el usuario envía el formulario, el script recibe los datos como pares nombre=valor. Los nombres son lo que definimos en las etiquetas usando el atributo name, y los valores son aquello que se dan mediante el atributo value o que el usuario haya escrito o seleccionado.

La organización de la cadena que contiene los pares nombre=valor es la siguiente: "nombre1=valor1&nombre2=valor2&nombre3=valor3". Cabe observar que los caracteres especiales se envían en formato codificado. Por ejemplo, el signo + es un espacio en blanco, que a veces se representa como %20. Con ella se debe convertir las secuencias %xx al carácter correspondiente según su valor ASCII; por ejemplo, el signo = se representa mediante %3d. No olvide que esto aplica principalmente a los valores introducidos por el usuario.

Entradas relacionadas: