Introducción a los CGIs

Empecemos por el principio. El interfaz CGI consiste en un conjunto de normas que permiten a una página Web comunicarse y ejecutar con programas externos a la página. Estos programas deben a su vez seguir también una serie de normas. A los programas que cumplen estas reglas, impuestas por el interfaz CGI, se les llama programas CGI, scripts CGI o simplemente CGI's, y pueden estar escritos en cualquier lenguaje, tanto interpretados como compilados, siendo los más usados los siguientes:

Perl
Este lenguaje interpretado es el más usado a la hora de hacer CGI's debido a las grandes facilidades que ofrece en el tratamiento de texto. Suele estar presentes en todas las plataformas tipo Unix, como Linux.
Bash (sh) o cualquier otra shell de Unix
Son usados por su increíble sencillez y facilidad de aprendizaje. Sin embargo tienen fallos de seguridad y no es aconsejable usarlos excepto para CGI's muy sencillos.
C o C++
Son también muy usados. Ofrecen la ventaja de que son lenguajes mucho más potentes, pero tienen otros inconvenientes: son más difíciles de aprender, es necesario compilarlos y sobre todo porque lleva más tiempo hacer un programa usándolos que usando por ejemplo Perl.

A partir de ahora hablaremos de CGI's para referirnos a este tipo de programas. Su principal característica será que se ejecutan en el ordenador donde está el servidor Web, y nunca en el del navegante que visita la página.

La siguiente pregunta básica es ¿qué limitaciones tiene un CGI? Como he mencionado antes usando CGI's se puede dotar a una página Web de una interactividad que sería impensable con ningún otro método. Sin embargo no es posible ejecutar cualquier programa desde una página Web. Por ejemplo no puedes entrar en la página de Microsoft y ejecutar allí mismo la última versión de por ejemplo el MS-Word o ir a un servidor Unix cualquiera y ejecutar el interfaz gráfico X-Window.

El propio interfaz CGI's impone severas limitaciones, que se derivan por el propio funcionamiento del sistema:

  • En una página Web se incluye la dirección URL de un CGI. En principio puede introducirse una dirección de un CGI, en cualquier lugar donde puede introducirse una dirección de una página Web.
  • Como consecuencia de una acción del usuario el navegador envía al servidor Web una petición de acceso a esa dirección (junto con información adicional).
  • El servidor se da cuenta de que la dirección es un programa CGI y lo ejecuta, usando como entrada al programa la información adicional enviada por el navegador.

    Al ejecutar un CGI desde una página se le puede mandar toda la información que se quiera, por ejemplo la información que el usuario ha introducido en un formulario.

  • El CGI procesará esta información y devolverá en general una página en formato HTML que crea sobre la marcha con los resultados obtenidos o bien una dirección de una página ya existente o bien una imagen. También es posible devolver otros tipos de datos pero son menos usados y no entraremos en ellos.
  • El servidor recibe la respuesta del CGI y se la envía al navegador, quien la formatea adecuadamente y la muestra al usuario.
Figura 1

En resumen, debe quedar claro que el CGI recibe unos datos, los procesa y devuelve otros datos. El usuario no puede interacturar directamente con el programa CGI. Para obtener ese efecto hay que usar apropiadamente el lenguaje HTML y hacer sucesivas llamadas a uno o varios CGI's.

Lo último que nos queda por decir de los programas CGIs es respecto a su forma de interactuar con el servidor Web. Es muy sencillo, toma los datos de entrada por la entrada estándar (como si hubiera un usuario escribiéndolos en un teclado) y envía los datos de salida por la salida estándar (como si los mandáramos a una pantalla). Gracias a esta sencillez cualquiera que haya programado en un lenguaje de programación puede realizar un CGI sin tener que aprender muchas cosas nuevas.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.