In English
(en Inglés)
Auf
deutsch (en Alemán), traducido por Friedemann Wachsmuth
Em
português (en portugués) traducido por Claudio F. Chagas
In het
Nederlands (en holandés), traducido por Simon Amstel
Asi que son las 4:00, tu jefe
necesita un script CGI escrito para las 4:30, y ni
siquiera sabes qué significa CGI. Has venido al lugar correcto.
No hay mucho al respecto, a pesar de cualquier chisme intimidatorio que
hayas podido oir. Si puedes leer de STDIN y escribir a
STDOUT, entonces puedes escribir scripts CGI. Si ya
eres un programador, este preliminar puede enseñarte lo básico de CGI en unos
cuantos minutos. Si no eres programador, este preliminar no te ayudará
mucho-- lo siento. Aprende un poco de programación, incluso scripts
de shell y regresa después. ¡Buena suerte!
Este preliminar se enfoca a escribir scripts CGI
para procesar formas HTML en el Web. Se salta algunos detalles, pero puede
hacerlo muy rápido (literalmente una hora o menos), y cubre el 90% de
las situaciones en el mundo real. Cuando tengas la necesidad, checa las especificaciones completas CGI.
Para ayuda con la escritura de formas HTML, ve este fragmente del tutorial, o esta
documentación en NCSA.
Una vez que hayas leído esta página, ve las notas
para scripts de ejemplo y otros temas.
CGI no es un lenguaje. Es simplemente un protocolo que puede
ser usado para comunicarse entre formas Web y tu programa Un script CGI puede ser escrito en cualquier lenguaje que
pueda leer de STDIN, escribir en STDOUT, y leer variables de entorno como
virtualmente cualquier lenguaje de programación, incluyendo C, Perl, o incluso scripts de shell.
Aquí está la secuencia típica de un script CGI:
El primer y último pasos se describen abajo.
Cuando el usuario envía la forma, tu script recibe
los datos como un conjunto de pares nombre-valor. Los nombres que definiste en
las etiquetas INPUT (o etiquetas SELECT o TEXTAREA), y los valores son
cualquier cosa que el usuario haya escrito o seleccionado. (Los usuarios
también pueden enviar archivos con formas, pero este preliminar no lo cubre.)
Este conjunto de pares nombre-valor se te envía como una sola larga cadena,
la cual debes procesar. No es muy complicado, y existen muchas rutinas que lo
hacen por tí. Aquí está una en Perl, una más simple
en Perl, o una en C.
Para un ambiente más elaborado de CGI, ve el módulo Perl's
CGI.pm. El directorio
CGI en Yahoo incluye muchas rutinas CGI (y scripts ya escritos), en varios lenguajes..
Si esto ya te es suficiente, salta a la siguiente sección. Si no lo es, o
simplemente eres curioso, aquí está el formato de una cadena larga:
"nombre1=valor1&nombre2=valor2&nombre3=valor3"
Así que solamente divide en los ampersands y
signos de igual. Entonces, haz dos cosas más para cada nombre y valor:
Esto es necesario porque la cadena larga original es código-URL,
para permitir signos de igual, ampersands, y otros en
la entrada del usuario.
Entonces de dónde obtienes la cadena larga? Eso depende
del método HTTP que la forma haya usado:
(Si te estás preguntando sobre la diferencia entre GET y POST, ve la nota
de discusión. Respuesta corta: POST es más de propósito general, pero GET
está bien para formas pequeñas.)
Primero, escribe la línea
Content-type: text/html
mas otra línea en blanco a. Después
de eso, escribe tu página de respuesta HTML en STDOUT, y se enviará al usuario
cuando tu script termine de ejecutarse. Eso es todo.
Si, estás generando código HTML en pleno vuelo. No es muy difícil, es en
realidad bastante sincero. El HTML fue diseñado para ser suficientemente simple
para generarse así.
Si quieres enviar de regreso una imágen u otra
respuesta no-HTML, aquí
está cómo hacerlo.
¿Ves qué fácil es? Si todavía no me crees, adelante y escribe un script. Asegúrate de poner el archivo en el lugar correcto
en tu servidor, y hacerlo ejecutable; revisa esta nota
para más consejos.
Antes de que escribas muchos scripts, aprende
sobre asuntos
de seguridad CGI.
Cuando necesites saber más sobre CGI, ve la especificación completa de CGI en NCSA.
W3C también mantiene una página CGI con ligas a cualquier
documento que puedas necesitar.
Oh sí, CGI quiere decir Common
Gateway Interface-- en
otras palabras, un método estándar ("común") de comunicación
("interfaz") entre diferentes procesos (tipo de "gateway").