lunes, 16 de diciembre de 2013

Creando mi primer script CGI de Perl


¿Qué es CGI?



Interesante: Vídeo Tutorial del CGI de Perl

Interesante: Vídeo Tutorial del lenguaje Perl

El Common Gateway Interface, o CGI, es un conjunto de normas que definen cómo se intercambia información entre el servidor web y un script personalizado.

Con el módulo CGI podemos enviar peticiones a un script alojado en el servidor y obtener una respuesta.

Creando mi primer script CGI de Perl

Para empezar vamos a ver como mostra un documento HTML a través de CGI en el navegador, para ello tienes que tener un servidor web y por supuesto Perl instalado en la máquina, yo por ejemplo tengo instalado XAMPP que instala tanto el servidor Apache, como Perl con el módulo CGI y su conjunto de herramientas, así que más que instalar cada cosa por separado, lo mejor es instalarlo todo a través de distribuciones como XAMPP o WAMP.

Primero vamos a crear una carpeta en el servidor, en XAMPP se hace a través de la carpeta htdocs C:\xampp\htdocs, a esta carpeta la puedes llamar tutorial-cgi




Ahora dentro de la carpeta tutorial-cgi crearemos otra carpeta llamada cgi-bin, aquí es donde iremos alojando los scripts .cgi.

A continuación, es el momento de abrir el editor de código, guardar el archivo como index.cgi  en la carpeta cgi-bin y agregale el siguiente código ...


#!"C:\xampp\perl\bin\perl.exe"

#Iniciar Cabeceras: 
#nunca utilices comillas simples al declarar 
#las cabeceras o te devolverá un error
print "Content-type:text/html\n\n";

#Cuerpo HTML
print "<!DOCTYPE HTML>\n";
print "<html>\n";
print "<head>\n";
print "<title>Mi primer script CGI de perl</title>\n";
print "</head>\n";
print "<body>\n";
print "<h1>Hola mundo he escrito mi primer script CGI de Perl</h1>\n";
print "</body>\n";
print "</html>";

Si ejecutas el archivo en el navegador ... http://localhost/tutorial-cgi/cgi-bin/index.cgi verás el siguiente resultado ...



Bien, el código viene comentado, al principio del fichero se indica la ruta al ejecutable de perl #!"C:\xampp\perl\bin\perl.exe", de no indicarlo el servidor te devolverá un error 500.

Para ejecutar archivos .cgi siempre tendrás que indicar las cabeceras http, hay múltiples cabeceras que puedes utilizar en CGI, estas son algunas de las más utilizadas:

CabeceraDescripción
Content-type: StringUn MIME string que define el formato del archivo que será retornado. Por ejemplo: Content-type: text/plain
Expires: Date StringFecha de expiración de la página. Un formato válido para este cabecera puede ser ... 01 Dec 2013 14:00:00 GMT
Location: URL StringLa URL a la que se redireccionará en lugar de la URL solicitada. Puede ser utilizada para redirigir una solicitud a cualquier archivo.
Last-modified: StringLa fecha de la última modificación del recurso.
Content-length: StringLongitud, en bytes, de los datos que se devuelve. El navegador utiliza este valor para informar del tiempo de descarga estimado para un archivo.
Set-Cookie: StringEstablecer las cookies a través de un string