Table Of ContentNOTA DEL AUTOR
Este libro fue publicado originalmente con copyright (todos los
derechos reservados) por el autor y el editor.
La publicación actual de este libro se realiza bajo la licencia
Creative Commons Reconocimiento-NoComercial-
SinObrasDerivadas 3.0 España que se resume en la siguiente
página. La versión completa se encuentra en la siguiente
dirección:
http://creativecommons.org/licenses/by-nc-nd/3.0/es/legalcode.es
Creative Commons
Creative Commons License Deed
Reconocimiento-NoComercial-SinObraDerivada 3.0 España (CC BY-NC-ND 3.0)
Usted es libre de:
copiar, distribuir y comunicar públicamente la obra
Bajo las condiciones siguientes:
Reconocimiento — Debe reconocer los créditos de la obra de la manera
especificada por el autor o el licenciador (pero no de una manera que
sugiera que tiene su apoyo o apoyan el uso que hace de su obra).
No comercial — No puede utilizar esta obra para fines comerciales.
Sin obras derivadas — No se puede alterar, transformar o generar una
obra derivada a partir de esta obra.
Entendiendo que:
Renuncia — Alguna de estas condiciones puede no aplicarse si se
obtiene el permiso del titular de los derechos de autor
Dominio Público — Cuando la obra o alguno de sus elementos se halle
en el dominio público según la ley vigente aplicable, esta situación no
quedará afectada por la licencia.
Otros derechos — Los derechos siguientes no quedan afectados por la
licencia de ninguna manera:
Los derechos derivados de usos legítimosu otras limitaciones
reconocidas por ley no se ven afectados por lo anterior.
Los derechos morales del auto;
Derechos que pueden ostentar otras personas sobre la propia
obra o su uso, como por ejemplo derechos de imagen o de
privacidad.
Aviso — Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de
esta obra.
Esto es un resumen legible por humanos del texto legal (la licencia completa) disponible en los idiomas siguientes:
Asturian Castellano Catalán Euskera Gallego
Programaci(cid:243)n de servidores web con CGI, SSI e
IDC
Sergio LujÆn Mora
Prefacio
Las aplicaciones web (web-based application) se clasi(cid:28)can dentro de las
aplicaciones cliente/servidor. Por un lado, se tiene el navegador (browser) que
haceelpapeldecliente;porotrolado,setieneelservidorwebquerepresentala
parteservidor.Paracrearcadaunadelaspartes,clienteyservidor,seemplean
distintas tecnolog(cid:237)as. As(cid:237), por ejemplo, para programar un cliente web se suele
utilizar HTML, JavaScript o applets en Java, mientras que para programar un
servidor web se emplea CGI, SSI, ASP o JSP.
En este libro se repasan las tecnolog(cid:237)as que fueron esenciales en la progra-
maci(cid:243)n de los servidores web durante los primeros aæos de la web. Las tres
tecnolog(cid:237)as que se presentan en este libro, CGI, SSI e IDC, permiten crear
pÆginas web dinÆmicas.
Mientras que CGI y SSI aœn se emplean muy a menudo, IDC ha sido supe-
rado por tecnolog(cid:237)as que han aparecido posteriormente. Sin embargo, debido
a la sencillez de IDC, he considerado que es un punto de inicio muy adecua-
do para afrontar el estudio de tecnolog(cid:237)as mÆs avanzadas pero a su vez mÆs
complicadas.
Para afrontar correctamente el estudio de los temas tratados en este libro,
hace falta poseer unos m(cid:237)nimos conocimientos sobre HTML. Existen multitud
de libros sobre HTML, pero recomiendo la consulta del libro Programaci(cid:243)n en
Internet: Clientes Web que he publicado en Editorial Club Universitario. En
Øl, se trata la programaci(cid:243)n de la parte cliente de las aplicaciones web y en
particular se estudian HTML y JavaScript.
El contenido de este libro se ha dividido en tres cap(cid:237)tulos y un apØndice.
Los tres cap(cid:237)tulos son independientes, por lo que se pueden leer en cualquier
orden.EllibroademÆsposeeunaseriede(cid:237)ndicesquepermitensuempleocomo
obra de referencia.
El cap(cid:237)tulo primero trata sobre CGI: presenta el estÆndar CGI, describe
iii
iv Prefacio
las distintas formas que existen de enviar informaci(cid:243)n a un programa CGI,
explica c(cid:243)mo emplear las variables de entorno y comenta algunos consejos que
puedenayudaralograrprogramasCGImÆsseguros.Ellenguajeempleadopara
programar los CGI de ejemplo que contiene este cap(cid:237)tulo es C, por lo que es
necesarioposeerunosconocimientosm(cid:237)nimosdeC oC++paracomprenderlos.
El segundo cap(cid:237)tulo estÆ dedicado a SSI. Se explica su uso, los comandos
mÆs comunes (no todos los servidores web aceptan los mismos comandos) y se
incluyen varios ejemplos.
El tercer cap(cid:237)tulo explica la tecnolog(cid:237)a IDC de Microsoft y c(cid:243)mo generar
pÆginas web dinÆmicas a partir de la informaci(cid:243)n almacenada en una base de
datos.
Por œltimo, el œnico apØndice del libro complementa el cap(cid:237)tulo tres, ya
que explica como crear un DSN para acceder a una base de datos mediante
ODBC.
Para (cid:28)nalizar, quisiera mandar un abrazo a mi familia y a Marisa, la gente
que quiero; un saludo a los amigos y compaæeros del Laboratorio Multimedia
(mmlab),conlosquetrabajØydisfrutØdebuenosmomentos,yotrosaludoalos
amigos y compaæeros del Departamento de Lenguajes y Sistemas InformÆticos
delaUniversidaddeAlicante,conlosquetrabajo(yesperoseguirtrabajando).
Alicante, 11 de noviembre de 2001 Sergio LujÆn Mora
˝ndice general
Prefacio iii
˝ndice general v
˝ndice de cuadros ix
˝ndice de (cid:28)guras xi
˝ndice de acr(cid:243)nimos xiii
1. CGI 1
1.1. Introducci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Un ejemplo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3. Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4. QuØ necesito para programar un CGI . . . . . . . . . . . . . . . 6
1.5. Lenguaje de programaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . 7
1.5.1. Independencia de plataforma . . . . . . . . . . . . . . . 8
1.5.2. Independencia de servidor . . . . . . . . . . . . . . . . . 8
1.6. Razones para emplear CGI . . . . . . . . . . . . . . . . . . . . 9
1.7. Razones para no emplear CGI . . . . . . . . . . . . . . . . . . . 10
1.8. El primer CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.9. C(cid:243)mo comunicarse directamente con el cliente . . . . . . . . . . 17
1.10.C(cid:243)mo env(cid:237)a el servidor informaci(cid:243)n a un CGI . . . . . . . . . . 17
1.10.1. A travØs de la l(cid:237)nea de comandos . . . . . . . . . . . . . 18
1.10.2. C(cid:243)mo tratar los formularios . . . . . . . . . . . . . . . . 22
1.10.3. A travØs de la URL . . . . . . . . . . . . . . . . . . . . . 24
1.10.4. A travØs de la entrada estÆndar . . . . . . . . . . . . . . 25
v