CGI es una norma para establecer comunicación entre un servidor web y un programa, de tal modo que este último
pueda interactuar con internet. También se usa la palabra CGI para referirse al programa mismo, aunque lo
correcto debería ser script. De todos modos en este tutorial nos interesa aprender
a escribir estos programas por lo cúal usaremos la palabra indistintamente, como es
costumbre en castellano.
Un CGI (Common Gateway Interface) es un programa que se ejecuta en tiempo
real en un Web Server en respuesta a una solicitud de un Browser. Cuando
esto sucede el Web Server ejecuta un proceso hijo que recibirá los datos
que envía el usuario (en caso de que los haya), pone a diposición del mismo
algunos datos en forma de variables de ambiente y captura la salida del
programa para enviarlo como respuesta al Browser.
El propósito de los CGI´s es proveer "inteligencia" e interactividad a un
sitio web, por ejemplo encontrar un sitio en Yahoo
utilizando solo los links que se proveen puede ser una labor frustrante, sin embargo usar el formulario y solicitar una busqueda personalizada suele frustrarnos (un poco) menos, ya que un CGI nos provee de una respuesta hecha a la medida (eso dice la teoría) de nuestra consulta.
Existen otras herramientas para lograr esto en cierta medida, tales como Server Side Includes o JavaScript, no es el propósito de este tutorial tocar en profundidad estos temas.
Generalidades
A lo largo de tu recorrido por el sitio te vas a topar con los siguientes símbolos:
 |
Haciendo click en este verás un ejemplo funcionando de la materia tratada. |
 |
Indica que la sección que viene a continuación contiene un truco o forma fácil de hacer algo o una nota importante. |
 |
Haciendo click en este podrás bajar el codigo fuente del ejemplo tocado (la mayoría de las veces en formato zip) |
 |
Haciendo click en este podrás ir al próximo capítulo. |
 |
Haciendo click en este podrás ir al capítulo anterior. |
 |
Haciendo click en este podrás ir al indice. |
Lenguajes
Aunque un CGI se puede programar en cualquier lenguaje soportado por
el sistema operativo del servidor, usaremos el lenguaje C para nuestros
ejemplos (excepcionalmente se tocarán algunos otros lenguajes).
Esto es porque un ejemplo en C podrá ser fácilmente portado a casi cualquier
sistema operativo.
 |
Si escribes CGIs para IIS (Windows NT), debes asegurarte de compilarlos
en modo 32 bits, de otro modo no funcionarán.
Además no es una buena idea usar programas .exe sino más bien usar
DLLs Dynamic Link Libraries que corren mucho más rápido.
Para mayor información revisa este breve apéndice sobre NT.
|
Otro lenguaje popular para escribir CGI´s es el Perl, el cúal
es interpretado y al igual que el C es altamente portable entre sistemas operativos.
Los ejemplos de código los haré lo mas claros posibles,
por ejemplo en vez de usar un código como
int main(){
FILE *fp;
if ( (fp = fopen("algo.dat","rb"))==NULL ) exit(1) else algo();
return(0);
}
|
preferiré uno algo más largo pero también más claro como:.
int main(){
FILE *fp;
fp = fopen("algo.dat","rb");
if( fp == NULL )
{
exit(1);
}else{
algo();
}
return ( 0 );
}
|
|