programacion internet

141

Upload: antonio-santamaria

Post on 03-Jan-2016

111 views

Category:

Documents


6 download

DESCRIPTION

Programacion Internet

TRANSCRIPT

Page 1: Programacion Internet
Page 2: Programacion Internet
Page 3: Programacion Internet

NOTA 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

Page 4: Programacion Internet

Creative Commons

Creative Commons License Deed

Reconocimiento-NoComercial-SinObraDerivada 3.0 España (CC BY-NC-ND 3.0)

Usted es libre de:

Bajo las condiciones siguientes:

Entendiendo que:

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

copiar, distribuir y comunicar públicamente la obra

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.

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.

Page 5: Programacion Internet
Page 6: Programacion Internet

Cuestionario básico sobre “Programación enInternet”

Sergio Luján MoraJaume Aragonés Ferrero

Page 7: Programacion Internet
Page 8: Programacion Internet

Índice general

Índice general iii

Índice de figuras vii

Índice de cuadros ix

Índice de acrónimos xi

1. Introducción 11.1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.2. Descripción de la asignatura “Programación en Internet” . . . . . . . . 31.3. Temario de la asignatura . . . . . . . . . . . . . . . . . . . . . . . . . . 41.4. Estructura del libro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5. Convenciones tipográficas . . . . . . . . . . . . . . . . . . . . . . . . . 6

2. Exámenes sin solución 92.1. Febrero de 2002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2. Septiembre de 2002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.3. Diciembre de 2002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.4. Examen extra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3. Exámenes con solución 353.1. Febrero de 2002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373.2. Septiembre de 2002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433.3. Diciembre de 2002 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493.4. Examen extra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

4. Explicaciones 614.1. Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

4.1.1. Explicación 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634.1.2. Explicación 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

iii

Page 9: Programacion Internet

iv Índice general

4.1.3. Explicación 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644.1.4. Explicación 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654.1.5. Explicación 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 654.1.6. Explicación 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 664.1.7. Explicación 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 674.1.8. Explicación 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

4.2. Arquitecturas cliente/servidor . . . . . . . . . . . . . . . . . . . . . . . 694.2.1. Explicación 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

4.3. Aplicaciones web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.3.1. Explicación 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . 694.3.2. Explicación 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . 704.3.3. Explicación 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . 714.3.4. Explicación 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

4.4. HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 724.4.1. Explicación 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . 724.4.2. Explicación 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.4.3. Explicación 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.4.4. Explicación 17 . . . . . . . . . . . . . . . . . . . . . . . . . . . 734.4.5. Explicación 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . 744.4.6. Explicación 19 . . . . . . . . . . . . . . . . . . . . . . . . . . . 744.4.7. Explicación 20 . . . . . . . . . . . . . . . . . . . . . . . . . . . 744.4.8. Explicación 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . 754.4.9. Explicación 22 . . . . . . . . . . . . . . . . . . . . . . . . . . . 754.4.10. Explicación 23 . . . . . . . . . . . . . . . . . . . . . . . . . . . 764.4.11. Explicación 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . 764.4.12. Explicación 25 . . . . . . . . . . . . . . . . . . . . . . . . . . . 774.4.13. Explicación 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . 774.4.14. Explicación 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . 784.4.15. Explicación 28 . . . . . . . . . . . . . . . . . . . . . . . . . . . 794.4.16. Explicación 29 . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

4.5. JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 834.5.1. Explicación 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . 834.5.2. Explicación 31 . . . . . . . . . . . . . . . . . . . . . . . . . . . 844.5.3. Explicación 32 . . . . . . . . . . . . . . . . . . . . . . . . . . . 854.5.4. Explicación 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . 854.5.5. Explicación 34 . . . . . . . . . . . . . . . . . . . . . . . . . . . 854.5.6. Explicación 35 . . . . . . . . . . . . . . . . . . . . . . . . . . . 864.5.7. Explicación 36 . . . . . . . . . . . . . . . . . . . . . . . . . . . 874.5.8. Explicación 37 . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

4.6. VBScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 894.6.1. Explicación 38 . . . . . . . . . . . . . . . . . . . . . . . . . . . 894.6.2. Explicación 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Page 10: Programacion Internet

Índice general v

4.7. CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.7.1. Explicación 40 . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.7.2. Explicación 41 . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.7.3. Explicación 42 . . . . . . . . . . . . . . . . . . . . . . . . . . . 904.7.4. Explicación 43 . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

4.8. SSI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934.8.1. Explicación 44 . . . . . . . . . . . . . . . . . . . . . . . . . . . 934.8.2. Explicación 45 . . . . . . . . . . . . . . . . . . . . . . . . . . . 944.8.3. Explicación 46 . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

4.9. ASP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.9.1. Explicación 47 . . . . . . . . . . . . . . . . . . . . . . . . . . . 964.9.2. Explicación 48 . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.9.3. Explicación 49 . . . . . . . . . . . . . . . . . . . . . . . . . . . 974.9.4. Explicación 50 . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.9.5. Explicación 51 . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.9.6. Explicación 52 . . . . . . . . . . . . . . . . . . . . . . . . . . . 994.9.7. Explicación 53 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.9.8. Explicación 54 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1014.9.9. Explicación 55 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024.9.10. Explicación 56 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1024.9.11. Explicación 57 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034.9.12. Explicación 58 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1034.9.13. Explicación 59 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.9.14. Explicación 60 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1044.9.15. Explicación 61 . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

4.10. Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.10.1. Explicación 62 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1054.10.2. Explicación 63 . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.11. JSP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064.11.1. Explicación 64 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1064.11.2. Explicación 65 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1084.11.3. Explicación 66 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094.11.4. Explicación 67 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1094.11.5. Explicación 68 . . . . . . . . . . . . . . . . . . . . . . . . . . . 1104.11.6. Explicación 69 . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

Bibliografía recomendada 113

Índice alfabético 115

Page 11: Programacion Internet
Page 12: Programacion Internet

Índice de figuras

4.1. Página principal del sitio web de FidoNet . . . . . . . . . . . . . . . . 674.2. Modelo de referencia TCP/IP . . . . . . . . . . . . . . . . . . . . . . . 684.3. Tecnologías empleadas en el cliente y el servidor web . . . . . . . . . . 704.4. Ejemplo de tabla con color de fondo . . . . . . . . . . . . . . . . . . . 774.5. Ejemplo de lista ordenada y no ordenada . . . . . . . . . . . . . . . . 784.6. Alineamiento del contenido de una tabla . . . . . . . . . . . . . . . . . 814.7. Áreas de texto de distinto tamaño . . . . . . . . . . . . . . . . . . . . 834.8. Ventana de alerta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 844.9. Ventana de confirmación . . . . . . . . . . . . . . . . . . . . . . . . . . 844.10. Ventana de solicitud de datos . . . . . . . . . . . . . . . . . . . . . . . 854.11. Configuración de parámetros de ASP en Microsoft Internet Information

Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 984.12. Página de error al solicitar el fichero Global.asa . . . . . . . . . . . . . 1004.13. Ciclo de vida de una página JSP y su correspondiente servlet . . . . . 107

vii

Page 13: Programacion Internet
Page 14: Programacion Internet

Índice de cuadros

4.1. Opciones de envío con el protocolo mailto: . . . . . . . . . . . . . . . . 754.2. Caracteres especiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 864.3. Colecciones, eventos, métodos y propiedades de los objetos Application,

Server y Session . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

ix

Page 15: Programacion Internet
Page 16: Programacion Internet

Índice de acrónimos

API Application Program InterfaceInterfaz de programación de aplicaciones. Conjunto de constantes, funciones

y protocolos que permiten programar aplicaciones. Una buena API facilita latarea de desarrollar aplicaciones, ya que facilita todas las piezas y el programadorsólo tiene que unirlas para lograr el fin que desea.

ARPA Advanced Research Projects AgencyAgencia de Proyectos de Investigación Avanzados. Agencia creada por el Depar-tamento de Defensa de los Estados Unidos de Norteamérica en 1958. Tambiénconocida como DARPA. A lo largo de los años ha cambiado su nombre va-rias veces: en 1971 DARPA, en 1993 ARPA y en 1996 DARPA otra vez. Elproyecto más conocido de los desarrollados por esta agencia es ARPANET (oARPAnet), semilla de la actual Internet.

ASCII American Standard Code for Information InterchangeCódigo binario utilizado para representar letras, números, símbolos, etc. A

cada carácter se le asigna un número del 0 al 127 (7 bits). Por ejemplo, elcódigo ASCII para la A mayúscula es 65. Existen códigos ASCII extendidosde 256 caracteres (8 bits), que permiten representar caracteres no ingleses comolas vocales acentuadas o la eñe. Los caracteres de la parte superior (128 a 255)de estos códigos ASCII extendidos varían de uno a otro. Por ejemplo, uno delos más extendidos es ISO Latin-1 (oficialmente ISO-8859-1).

ASP Active Server PagesTecnología propietaria de Microsoft que permite crear páginas web dinámicasen el servidor. Desarrollada con el objetivo de sustituir a la tecnología CGI,ofrece una serie de características que facilitan la programación de aplicacionesweb. Las páginas ASP suelen estar programadas en VBScript, aunque tambiénse pueden programar en otros lenguajes, como JScript.

BBS Bulletin Board SystemUna BBS es un centro de intercambio de mensajes electrónicos. El funciona-

miento básico de una BBS es muy sencillo: el usuario se conecta a través de

xi

Page 17: Programacion Internet

xii Índice de acrónimos

un módem, puede revisar los mensajes dejados por otros usuarios o puede dejarsus propios mensajes.

BMP Bit-mapFormato gráfico de mapa de bits estándar en los sistemas operativos MicrosoftWindows. Almacena las imágenes en un formato llamado “mapa de bits inde-pendiente del dispositivo”, que significa que el color de cada punto (pixel) sealmacena de un modo independiente del método empleado por un dispositivopara representar el color. Existen diversos formatos: 1 bit (blanco y negro), 4bits (16 colores), 8 bits (256 colores) y 24 bits (16 777 216 colores).

CERN Conseil Européenne pour le Recherche NucléaireOrganización Europea para la Investigación Nuclear. Es el mayor centro científi-co a nivel mundial dedicado a la física de partículas. Su sede central se encuentraen Ginebra, Suiza. Fundado en 1954 por 12 países, actualmente está formadopor 20 países, entre ellos España. Tim Berners-Lee, mientras trabajaba en él aprincipios de 1990, inventó la WWW.

CFML ColdFusion Markup LanguageLenguaje de etiquetas empleado para programar las páginas web dinámicas enel servidor basadas en la tecnología ColdFusion.

CGI Common Gateway InterfaceEstándar que permite el intercambio de información entre un servidor y un

programa externo al servidor. Un programa CGI es un programa preparadopara recibir y enviar datos desde y hacia un servidor web según este estándar.Normalmente se programan en C o en Perl, aunque se puede usar cualquierlenguaje de propósito general.

CSP Caché Server PagesTecnología propietaria de Intersystems que permite crear páginas web diná-micas en el servidor. Se diferencia de otras tecnologías similares como ASP yJSP en que la lógica de negocio reside junto con la lógica de datos en el sistemagestor de bases de datos.

CSS Cascading Style SheetsTecnología empleada en la creación de páginas web, que permite un mayor

control sobre el lenguaje HTML. Permite crear hojas de estilo que definencomo cada elemento, como por ejemplo los encabezados o los enlaces, se tieneque mostrar. El término “en cascada” indica que diferentes hojas de estilo sepueden aplicar sobre la misma página. CSS ha sido desarrollada por W3C.

DARPA Defense Advanced Research Projects AgencyVer ARPA.

Page 18: Programacion Internet

Índice de acrónimos xiii

DHTML Dynamic HTMLConjunto de extensiones a HTML que permiten modificar el contenido de unapágina web en el cliente sin necesidad de establecer una nueva comunicación conel servidor. Se basa en el uso de DOM para acceder al contenido de la página.

DNS Domain Name SystemTambién conocido como Domain Name Service, es un servicio de Internet quetraduce los nombres de dominio (por ejemplo, http://www.ua.es) a direccio-nes IP (193.145.233.8). Como los nombres de dominio son palabras, son másfáciles de recordar que las direcciones IP. Sin embargo, Internet se basa en lasdirecciones IP. Cada vez que se emplea un nombre de dominio, el servicio deDNS traduce un nombre de dominio en su correspondiente dirección IP. Si unservidor de DNS no sabe cómo traducir un nombre de dominio, traslada lapregunta a otro servidor de DNSy así sucesivamente hasta que se obtenga ladirección IP correspondiente o una respuesta de error.

DOM Document Object ModelEspecificación que define como se puede acceder a los objetos de un documentoHTML (ventanas, imágenes, formularios) a través de un lenguaje de script.Básicamente define una jerarquía de objetos. DOM se encuentra en proceso deestandarización por W3C. DHTML depende de DOM para cambiar dinámi-camente el contenido de una página web. Desgraciadamente, los dos navegadoresmayoritarios poseen distintos modelos de objetos que en algunas partes son in-compatibles entre sí.

GIF Graphics Interchange FormatFormato gráfico de mapa de bits desarrollado por Compuserve para su ser-

vicio de información. Sus principales características son: compresión de datossin pérdidas (LZW), soporte de transparencias y de animaciones. Existen dosversiones de este estándar gráfico: 87A y 89A. Es el formato más adecuado paraimágenes con pocos colores, dibujos sencillos o textos.

GNU GNU is Not UnixGNU es un acrónimo recursivo de “GNU is Not Unix ”. El proyecto GNU

nació en 1984 de la mano de Richard Stallman en el MIT, con el fin de des-arrollar un sistema operativo del estilo de Unix, pero totalmente gratuito. Elobjetivo deGNU es la creación de software no propietario. Este software sepuede descargar, usar y modificar libremente, siempre que se cumpla la GPL.La principal limitación que impone esta licencia es que no se puede limitar ladistribución y uso de un software basado en GNU.

GPL GNU General Public LicenseGPL es la licencia que se emplea con algunos tipos de software de código

abierto (open source software), que detalla bajo que condiciones el software ysu correspondiente código fuente se puede copiar, distribuir y modificar.

Page 19: Programacion Internet

xiv Índice de acrónimos

HTML HyperText Markup LanguageLenguaje compuesto de una serie de etiquetas o marcas que permiten definir

el contenido y la apariencia de las páginas web. Aunque se basa en el estándarSGML, no se puede considerar que sea un subconjunto de él. Existen cientosde etiquetas con diferentes atributos. W3C se encarga de su estandarización.El futuro sustituto de HTML es XHTML.

HTTP HyperText Transfer ProtocolEs el protocolo que emplea la WWW. Define como se tienen que crear y

enviar los mensajes y que acciones debe tomar el servidor y el navegador enrespuesta a un comando. Es un protocolo stateless (sin estado), porque cadacomando se ejecuta independientemente de los anteriores o de los posteriores.Actualmente, la mayoría de los servidores soportan HTTP 1.1 (RFC 2616 dejunio de 1999). Una de las principales ventajas de esta versión es que soportaconexiones persistentes: una vez que el navegador se conecta al servidor, puederecibir múltiples ficheros a través de la misma conexión, lo que aumenta elrendimiento de la transmisión hasta en un 20 %.

IAB Internet Architecture BoardComité del IETF. En el RFC 2850 “Charter of the Internet Architecture Board(IAB)” se establece su organización y su misión. La dirección de su sitio web enInternet es la siguiente: http://www.iab.org/.

IANA Internet Assigned Numbers AuthorityComité del IETF encargado de estandarizar los distintos parámetros que se

emplean en Internet, como son las direcciones IP, los nombres de dominio, lospuertos empleados por los protocolos y otros tipos de nombres e identificadores.La dirección de su sitio web en Internet es http://www.iana.org/.

IDC Internet Database ConnectorConector de bases de datos de Internet. Tecnología propietaria de Microsoftque permite generar páginas web dinámicas a partir de la información almace-nada en una base de datos. Es el precursor de ASP.

IETF Internet Engineering Task ForceOrganización internacional formada por diseñadores de red, operadores de In-

ternet y fabricantes, que vigila por la correcta evolución y funcionamiento deInternet. En el RFC 3160 “The Tao of IETF - A Novice’s Guide to the InternetEngineering Task Force” se puede consultar su composición, funcionamiento yobjetivos. La dirección de su sitio web en Internet es http://www.ietf.org/.

IP Internet ProtocolEl protocolo IP especifica el formato de los paquetes (datagramas) y el esquemade direccionamiento en Internet. La versión actual de este protocolo es IPv4,

Page 20: Programacion Internet

Índice de acrónimos xv

pero en la actualidad se está comenzando a implantar la nueva versión IPv6,también llamada IPng (IP next generation).

ISO International Organization for StandardsOrganización fundada en 1946, cuyos miembros son las organizaciones naciona-les de normalización (estandarización) correspondientes a los países miembros.Entre sus miembros se incluyen ANSI (Estados Unidos), BSI (Gran Bretaña),AFNOR (Francia), DIN (Alemania) y UNE (España).

ISOC Internet SocietyLa ISOC es una sociedad profesional establecida en 1992, que agrupa más

de 150 organizaciones y 16.000 miembros individuales en más de 180 países.Esta organización agrupa otras organizaciones responsables de desarrollar losestándares de Internet, como la IETF, la IANA y la IAB. La dirección de susitio web en Internet es http://www.isoc.org/.

JPEG Joint Photographic Experts GroupNombre del comité de expertos que desarrolló el formato gráfico con el mismo

nombre. Se trata de un formato gráfico de mapa de bits que incorpora compre-sión de datos con pérdidas y permite trabajar con 24 bits de color (color real overdadero). El nivel de compresión es variable, por lo que se puede elegir entremejor calidad y menor compresión o peor calidad y mayor compresión. Esteformato se suele emplear con imágenes fotográficas o complejas, pero no es eladecuado para imágenes sencillas, dibujos o textos.

JPG Joint Photographic Experts GroupVer JPEG.

JSP Java Server PagesTecnología de Sun Microsystems que permite crear páginas web dinámicas

en el servidor. Equivale a la tecnología ASP de Microsoft. Se programan enJava.

LZW Lempel Ziv WelchEsquema de compresión sin pérdidas empleado en el formato gráfico GIF deCompuserve. Desarrollado por J. Ziv and A. Lempel en 1977, y posteriormentemejorado por T. Welch. La patente de LZW la ostenta Unisys Corporation.Durante muchos años, Unisys Corporation permitió el uso de LZW sincobrar un canon (la mayoría de la gente no sabía que había sido patentado en1983). Sin embargo, a partir de 1995 decidió cobrar una tasa y se desató unagran controversia ya que se había extendido ampliamente su uso.

MIME Multipurpose Internet Mail ExtensionsEstándar que permite la transmisión de cualquier tipo de fichero mediante

correo electrónico. Además, los navegadores también emplean los tipos MIME

Page 21: Programacion Internet

xvi Índice de acrónimos

para identificar y visualizar distintos tipos de recursos que no están en formatoHTML.

MIT Massachusetts Institute of TechnologyInstituto Tecnológico de Massachusetts. Centro de investigación avanzado si-

tuado en los Estados Unidos. Famoso por su “Media Lab”, en el cual trabajaninvestigadores de la talla de Nicholas Negroponte o Marvin Minsky.

MPEG Moving Picture Experts GroupNombre del comité de expertos que desarrolló el formato de vídeo digital con

el mismo nombre. En realidad, se trata de un conjunto de formatos de compre-sión de vídeo con pérdidas (MPEG-1, MPEG-2 and MPEG-4) con diferentesresoluciones (352 x 240, 720 x 480, etc.) y velocidades de refresco.

MPG Moving Picture Experts GroupVer MPEG.

MVJ Máquina Virtual JavaEntorno de ejecución independiente de la plataforma que convierte los byte-

codes del lenguaje Java al lenguaje máquina de la plataforma (arquitectura demicroprocesador y sistema operativo) donde se ejecuta.

NCSA National Center for Supercomputing ApplicationsCentro Nacional para Aplicaciones de Supercomputación. Centro creado en la

Universidad de Illinois en enero de 1986. Famoso porque uno de los primerosnavegadores web gratuitos, NCSA Mosaic, se creó en sus instalaciones.

ODBC Open DataBase ConnectivityConectividad abierta de bases de datos. ODBC es un estándar de facto para

el acceso a bases de datos en entornos cliente/servidor. El objetivo de ODBCes facilitar el acceso a cualquier dato desde cualquier aplicación, independien-temente del sistema gestor de bases de datos empleado. Para ello, en ODBCseinserta una capa intermedia, llamada controlador (driver) de la base de datos,entre la aplicación y el sistema gestor de bases de datos. El propósito de estacapa es traducir las consultas que genera la aplicación en comandos que entien-da el sistema gestor de bases de datos. Por tanto, mediante ODBC, se puedecambiar la parte servidor (la base de datos) sin tener que cambiar el cliente,siempre que todas las partes sean compatibles con ODBC.

OSI Open System InterconnectionTambién conocido como el Modelo de Referencia OSI o el Modelo OSI. Se tratade un estándar de ISO que define un marco para implementar los protocolosde red en siete capas. Los siete niveles, desde el más inferior (1) al superior (7)son: físico, enlace, red, transporte, sesión, presentación y aplicación.

Page 22: Programacion Internet

Índice de acrónimos xvii

PNG Portable Network GraphicsFormato gráfico de mapa de bits similar a GIF. W3C ha desarrollado este

formato gráfico con la idea de sustituir GIF por PNG debido a que el primeroemplea un algoritmo que está patentado, mientras que PNG es totalmentegratuito. No permite crear animaciones, pero sí que permite definir distintosniveles de transparencia. Al igual que GIF, emplea un esquema de compresiónsin perdidas que logra tasas de compresión mayores que GIF. Tanto MicrosoftInternet Explorer como Netscape Navigator aceptan este formato, aunque no todassus características.

RFC Request for CommentsMedio de publicar propuestas sobre Internet. Cada RFC recibe un número.

Algunos se convierten en un estándar de Internet.

RGB Red Green BlueNotación de los colores en la que cada color se representa como una combinaciónde los tres colores básicos (primarios) rojo (red), verde (green) y azul (blue).Se trata de un modelo aditivo (se parte del negro). Mediante la combinaciónadecuada de los tres colores básicos se consigue todo el espectro de colores.Además de RGB existen otras formas de representar los colores. Otra de lasmás corrientes es CMYK (cyan, magenta, yellow, black), que se trata de unmodelo sustractivo.

RTB Red de Telefonía BásicaTambién llamada Red de Telefonía Conmutada. Es el servicio que los operadoresde telefonía dan a los usuarios a través de plataformas terrestres y cableadashasta el punto final.

SGML Standard Generalized Markup LanguageLenguaje que permite organizar y etiquetar los distintos elementos que com-

ponen un documento. Se emplea para manejar grandes documentos que sufrenconstantes revisiones y se imprimen en distintos formatos e idiomas. Desarro-llado y estandarizado por ISO en 1986.

SSI Server Side IncludeDirectivas de inclusión del servidor. Comandos que se incluyen en una páginaHTML y que son ejecutados por el servidor web antes de transmitir la páginaal cliente. Permite generar páginas web dinámicas.

TCP/IP Transmission Control Protocol/Internet ProtocolFamilia de protocolos que se emplean en las comunicaciones de Internet.

TIFF Tagged Image File FormatFormato gráfico de mapa de bits muy popular tanto en entorno Microsoft Win-dows como Apple Macintosh. Permite almacenar imágenes de cualquier resolu-ción, en blanco y negro, escala de grises o color.

Page 23: Programacion Internet

xviii Índice de acrónimos

URL Universal Resource LocatorTambién conocido como Uniform Resource Locator. Sistema de direccionamien-to de máquinas y recursos en Internet. Es decir, se trata de una dirección quepermite localizar cualquier máquina o documento que se encuentre accesible através de Internet.

VRML Virtual Reality Modeling LanguageLenguaje de Modelado de Realidad Virtual. Lenguaje para crear objetos en

tres dimensiones en la Web. Los ficheros creados con este lenguaje poseen laextensión .wrl (de world) y para visualizarlos es necesario emplear un visoradecuado o que el navegador web disponga del correspondiente plug-in.

W3C World Wide Web ConsortiumConsorcio internacional de compañías y organizaciones involucradas en el de-

sarrollo de Internet y en especial de la WWW. Su propósito es desarrollarestándares y “poner orden” en Internet.

WWW World Wide WebTambién conocida como “la Web” o “la Red”. Sistema mundial de servidores webconectados a Internet (no todos los ordenadores conectados a Internet formanparte de la WWW). Su protocolo de comunicación es HTTP, su lenguajede creación de documentos HTML y su sistema de direccionamiento de losrecursos URL. Los navegadores web (browsers) permiten navegar por la web.

XHTML eXtensible HyperText Markup LanguageHTML escrito según las normas que marca XML. Por tanto, se trata de unaaplicación concreta de XML y no tienen que confundirse entre sí.

XML Extensible Markup LanguageMetalenguaje de etiquetado basado en SGML. Diseñado específicamente parala WWW por W3C. Permite que un usuario diseñe sus propias etiquetas, consus atributos y las reglas de construcción de documentos (sintaxis).

Page 24: Programacion Internet

Capítulo 1

Introducción

En este capítulo se realiza una introducción del libro y se presenta el contenido decada uno de los capítulos. Además, también se comentan las convenciones tipográficasempleadas para distinguir los acrónimos, nombres de programas, etc.

1

Page 25: Programacion Internet
Page 26: Programacion Internet

1.1. Introducción 3

1.1. Introducción

Desde el curso 2001-2002, se imparte la asignatura “Programación en Internet”en la Universidad de Alicante. Esta asignatura pertenece al plan de estudios 2001de las titulaciones de Ingeniería en Informática, Ingeniería Técnica en Informáticade Sistemas e Ingeniería Técnica en Informática de Gestión de la Universidad deAlicante. En la Universidad de Alicante, esta asignatura la imparte el Departamentode Lenguajes y Sistemas Informáticos, adscrito a la Escuela Politécnica Superior dedicha Universidad.

Este libro trata de satisfacer el deseo de los alumnos de “Programación en Internet”de consultar las pruebas de evaluación de cursos anteriores, que emplean como mediode preparación a las pruebas de evaluación de conocimientos a las que se tendrán queenfrentar al final de la asignatura. Para ello, este libro contiene los tres exámenes detipo test que se plantearon a lo largo del curso 2001-2002 (convocatorias de febrero,septiembre y diciembre). Además, se incluye un examen extra formado por preguntasde los otros tres exámenes. Cada uno de los exámenes incluye su correspondientesolución, que además incluye una explicación de las preguntas y respuestas.

1.2. Descripción de la asignatura “Programación enInternet”

La asignatura “Programación en Internet” es optativa y de duración cuatrimestral,con una carga docente de 6 créditos, repartidos entre 3 de teoría y 3 de prácticas. Ladescripción oficial de la asignatura, publicada en el Boletín Oficial del Estado número230 de 25 de septiembre de 2001 es:

Desarrollo y programación de sistemas de acceso a bases de datos de Internet.

Planificación, diseño y administración de sitios Web.

Migración de aplicaciones a entornos en Internet.

Herramientas de desarrollo.

Diseño y programación de elementos multimedia en Internet.

La asignatura “Programación en Internet” no posee prerrequisitos, pero sí las si-guientes recomendaciones oficiales (no es necesario haber aprobado las siguientes asig-naturas, pero sí recomendable haberlas cursado previamente):

Fundamentos de Programación I (1er curso).

Fundamentos de Programación II (1er curso).

Page 27: Programacion Internet

4 Capítulo 1. Introducción

Bases de Datos I (2o curso).

Los objetivos principales de “Programación en Internet” son:

Que el alumno conozca las características principales de las tecnologías emplea-das en el desarrollo de aplicaciones web.

Que el alumno conozca la estructura y funcionamiento de una aplicación web.

Que el alumno adquiera los conocimientos y habilidades necesarios para progra-mar aplicaciones destinadas a ser usadas en entornos Internet.

Que el alumno conozca los recursos específicos (hardware y software) necesariospara poner en producción aplicaciones web.

Además, no se trata sólo de aprender habilidades técnicas, sino de dotar de conoci-mientos de fondo para formar profesionales flexibles capaces de trabajar con cualquiertecnología con una curva de aprendizaje mínima. Las tecnologías que se emplean enInternet están en continua evolución, por lo que no tiene sentido especializarse enuna única tecnología, sino ofrecer una visión más amplia del estado actual de lastecnologías de desarrollo en Internet.

1.3. Temario de la asignaturaLa asignatura está dividida en tres módulos principales que tratan aspectos gene-

rales de la programación en Internet, la programación de la parte cliente y la progra-mación de la parte servidor:

Módulo I: Introducción a la programación en Internet

• Presentación y objetivos de la asignatura

• Historia de Internet

• Arquitecturas cliente/servidor

• ¿Qué es una aplicación web?

• Estructura de un sitio web

Módulo II: Programación de clientes web

• HTML

• Guía de estilo

• Lenguajes de script

• JavaScript

Page 28: Programacion Internet

1.4. Estructura del libro 5

• Modelo de objetos de documento

Módulo III: Programación de servidores web

• CGI

• SSI

• IDC

• Conceptos comunes de las tecnologías de programación de servidor web:ASP, ColdFusion, JSP y PHP

• Active Server Pages (ASP)

• Java Server Pages (JSP)

• Otras tecnologías: PHP, ColdFusion y Caché

1.4. Estructura del libro

Este libro se compone de 4 capítulos, un apéndice con bibliografía recomendada yvarios índices (figuras, acrónimos, etc.) que facilitan la búsqueda de información.

En el Capítulo 2 (Exámenes sin solución), se presentan los exámenes sin so-lución empleados durante el curso 2001-2002, más un examen extra formado porpreguntas de los otros tres.

En el Capítulo 3 (Exámenes con solución), aparecen los mismos exámenespresentados en el Capítulo 2, pero con la respuesta correcta indicada. Además, apareceuna referencia a la explicación de la pregunta que aparece en el Capítulo 4.

En el Capítulo 4 (Explicaciones), se explica la solución de cada una de las pre-guntas de los exámenes presentados. Aquellas preguntas que tratan un tema similaraparecen relacionadas entre sí. Además, las explicaciones aparecen ordenadas segúnel tema que tratan. Las preguntas planteadas para cada tema son:

Internet (11): 6, 10, 26, 29, 35, 51, 52, 53, 77, 78, 95.

Arquitecturas cliente/servidor (1): 1.

Aplicaciones web (7): 5, 9, 14, 42, 54, 55, 80, 91.

HTML (24): 2, 19, 20, 28, 30, 32, 36, 38, 39, 41, 43, 45, 48, 56, 57, 58, 59, 60,82, 84, 86, 89, 93, 96.

JavaScript (10): 15, 21, 33, 49, 61, 62, 63, 64, 88, 98.

VBScript (2): 24, 67.

CGI (5): 12, 23, 40, 65, 90.

Page 29: Programacion Internet

6 Capítulo 1. Introducción

SSI (5): 17, 44, 66, 81, 100.

ASP (22): 3, 7, 13, 16, 18, 22, 25, 31, 37, 47, 50, 68, 69, 70, 71, 72, 76, 79, 83,87, 92, 97.

Java (3): 4, 34, 75.

JSP (9): 8, 11, 27, 46, 73, 74, 85, 94, 99.

1.5. Convenciones tipográficas

Con el fin de mejorar la legibilidad del texto, distintas convenciones tipográficasse han empleado a lo largo de todo el libro.

Los ejemplos, que normalmente están completos y por tanto se pueden escribir yprobar, aparecen destacados de la siguiente forma (el texto de los ejemplos emplea untipo de letra de paso fijo como Courier):

<!DOCTYPE HTML PUBLIC ".//W3C//DTD HTML 4.0//EN"><HTML><HEAD>Cabecera de la página</HEAD><BODY>Cuerpo de la página</BODY></HTML>

Los estilos empleados a lo largo del texto son:

Los acrónimos y siglas que figuran en el índice de acrónimos aparecen siempredestacados en negrita. Ejemplo: ASP, HTML, URL, etc.

Cuando un acrónimo aparece por primera vez, se muestra el nombre completoen cursiva y entre paréntesis y en negrita el acrónimo. Ejemplo: GraphicsInterchange Format (GIF), World Wide Web (WWW), etc.

Las palabras no escritas en castellano aparecen destacadas en cursiva. Ejemplo:bookmarks, browser, plug-in, etc.

Cuando se hace referencia a un programa, el texto de los interfaces que se venen pantalla aparece en negrita. Además, se emplea una flecha para indicar unasecuencia de acciones o pulsaciones en un programa. Ejemplo: Aceptar, Inicio→ Programas → Accesorios.

Page 30: Programacion Internet

1.5. Convenciones tipográficas 7

Los nombres de las compañías se muestran con un tipo de letra de mayúsculaspequeñas. Ejemplo: Microsoft, Netscape, etc.

Los nombres de los programas se muestran con un tipo de letra sin palo (sansserif). Ejemplo: Microsoft Paint, Netscape Navigator, Opera, etc.

Los lenguajes informáticos se muestran con un tipo de letra inclinada. Ejemplo:C, Java, Perl, etc.

Las extensiones de los ficheros, las palabras clave de los lenguajes de pro-gramación y el código incluido dentro del texto se muestra con un tipo deletra de paso fijo como Courier. Ejemplo: .html, <IMG>, var ciudad ="Elche", etc.

Page 31: Programacion Internet
Page 32: Programacion Internet

Capítulo 2

Exámenes sin solución

En este capítulo se presenta una serie de exámenes sin solución realizados en laasignatura “Programación en Internet” de la Universidad de Alicante durante el cursoacadémico 2001-2002. El último examen no se ha empleado en ningún examen real yse basa en preguntas de los otros tres exámenes.

Cada examen se compone de 25 preguntas. Las preguntas aparecen tal como apa-recieron en los exámenes y no poseen ningún orden, ya que así es como se presentarona los alumnos.

Cada pregunta posee dos numeraciones:

La primera indica el número de orden de la pregunta dentro del examen. Paracada examen, esta numeración empieza desde 1.

La segunda numeración es única para todos los exámenes e indica la posiciónde la pregunta en el conjunto de todas las preguntas.

Todas las preguntas poseen cuatro respuestas, de las cuales únicamente una es lacorrecta.

9

Page 33: Programacion Internet
Page 34: Programacion Internet

2.1. Febrero de 2002 11

2.1. Febrero de 20021. (1) En las arquitecturas cliente/servidor:

a) La parte cliente se conoce como front-end y la servidor como back-end.

b) La parte cliente se conoce como back-end y la servidor como front-end.

c) La parte cliente se conoce como display-end y la servidor como process-end.

d) Las anteriores respuestas no son correctas.

2. (2) Respecto a XHTML, señala cuál de las siguientes afirmaciones es falsa:

a) Las etiquetas y atributos tienen que escribirse siempre en minúsculas.

b) El valor de los atributos tiene que ir entre comillas.

c) No se admiten atributos sin valor.

d) No existen etiquetas vacías.

3. (3) En la siguiente petición, “pag.asp?id=123”, ¿cómo obtenemos el valor de“id” en la página ASP “pag.asp”?:

a) Request.Form("id").

b) Request.QueryString("id").

c) Request("id").

d) La b) y la c) son correctas.

4. (4) De las siguientes afirmaciones sobre Java, cuál no es cierta:

a) El propósito inicial fue el desarrollo de aplicaciones en Internet.

b) Es un lenguaje multiplataforma.

c) Es un lenguaje fuertemente tipado.

d) Incorpora un recolector de basura.

5. (5) De las siguientes tecnologías, ¿cuál se emplea para programar un clienteweb?:

a) CGI.

b) ASP.

c) HTML.

d) ColdFusion.

6. (6) El sistema que se emplea en Internet para traducir un nombre de dominioen dirección IP se llama:

Page 35: Programacion Internet

12 Capítulo 2. Exámenes sin solución

a) Name Resolution System.b) Direct Name System.c) Domain System Name.d) Domain Name System.

7. (7) Respecto a la petición “file:///localhost/p.asp” ejecutada en un orde-nador que posee el servidor Microsoft Personal Web Server:

a) El código ASP de la página se ejecuta si el servidor web está iniciado.b) El código ASP de la página no se ejecuta.c) El código ASP de la página no se ejecuta si el servidor web no está iniciado.d) La a) y la c) son correctas.

8. (8) Cuando un servicio web recibe una petición sobre una página JSP:

a) Se interpreta el código de la página JSP y se devuelve una respuesta.b) Se ejecuta directamente el servlet correspondiente a la página JSP.c) Se busca la página JSP en la caché y se interpreta su código.d) Las anteriores respuestas no son correctas.

9. (9) De las siguientes tecnologías, ¿cuál no se emplea para programar un servidorweb?:

a) Servlets.b) Applets.c) SSI.d) ColdFusion.

10. (10) El protocolo HTTP fue inventado por:

a) Tim Berners-Lee.b) Marc Andresseen.c) Linus Torvalds.d) Steve Jobs.

11. (11) Respecto a la programación con JSP, señala cuál no es cierta:

a) Las expresiones son simples volcados de datos a la página.b) Las acciones únicamente tienen sintaxis basada en XML.c) Es necesario hacer una operación de conversión (cast) cuando en una ex-

presión se devuelvan datos que no sean de tipo String.

Page 36: Programacion Internet

2.1. Febrero de 2002 13

d) Las directivas tienen como propósito enviar instrucciones al motor de JSP.

12. (12) Un programa CGI:

a) Sólo puede recibir información por la entrada estándar.

b) Se tiene que programar en un lenguaje compilado.

c) Mantiene automáticamente el estado (sesión) entre una conexión y otra.

d) Las anteriores respuestas no son correctas.

13. (13) El tiempo de vida de una sesión en ASP se puede configurar con:

a) Session.Timeout.

b) Session.SetTimeout.

c) Session.ScriptTimeout.

d) Las anteriores respuestas no son correctas.

14. (14) Una Intranet es:

a) Una red global que conecta millones de ordenadores por todo el mundo.

b) Una red privada basada en TCP/IP.

c) Una red pública basada en TCP/IP.

d) Las anteriores respuestas no son correctas.

15. (15) JavaScript es un lenguaje de programación:

a) Orientado a objetos.

b) Basado en objetos.

c) Sin objetos.

d) Las anteriores respuestas no son correctas.

16. (16) Desde una página ASP, para enviar información al cliente se emplea elobjeto:

a) Request.

b) Response.

c) Session.

d) Sender.

17. (17) En SSI, para insertar en una página la fecha de la última modificación deun archivo se emplea:

a) <!-- #flastmod file="archivo" -->.

Page 37: Programacion Internet

14 Capítulo 2. Exámenes sin solución

b) <!-- #flastmod virtual="archivo" -->.c) <!-- #flastmod src="archivo" -->.d) La a) y la b) son correctas.

18. (18) Respecto al fichero Global.asa, señala cuál de las siguientes afirmacioneses falsa:

a) En él se declaran los eventos de inicio y finalización de los objetos Applicationy Session.

b) Es un fichero obligatorio en cualquier aplicación web realizada con ASP.c) No es accesible desde el cliente.d) El código incluido en él no puede escribir datos en la página devuelta.

19. (19) El esqueleto básico de una página HTML es:

a) <HTML>, <HEAD>, <BODY>, </BODY>, </HTML>.b) <HTML>, <HEAD>, <BODY>, </HEAD>, </BODY>.c) <HTML>, <HEAD>, <BODY>, </BODY>, </HEAD>.d) Las anteriores respuestas no son correctas.

20. (20) La etiqueta <P> ... </P> se emplea para:

a) Marcar párrafos de texto.b) Destacar el texto con un formato especial.c) Aumentar la sangría del texto.d) Las anteriores respuestas no son correctas.

21. (21) En JavaScript, si queremos mostrar un mensaje de alerta, usaremos:

a) window.alert("mensaje").b) window.alert = "mensaje".c) document.alert("mensaje").d) windows.alert("mensaje").

22. (22) Desde una página ASP se puede acceder:

a) Al sistema de archivos en el servidor.b) Al sistema de archivos en el cliente.c) A ambos sistemas de archivos.d) Las anteriores respuestas no son correctas.

Page 38: Programacion Internet

2.1. Febrero de 2002 15

23. (23) Para obtener la información que un cliente web envía con una URL alservidor web, un programa CGI:

a) Consulta la variable de entorno QUERY_STRING.

b) Consulta la variable de entorno CONTENT.

c) Consulta la variable de entorno PATH_INFO.

d) La a) y la c) son correctas.

24. (24) En VBScript, a la hora de concatenar cadenas, el mejor operador es:

a) “+”.

b) “&”.

c) “.”.

d) No existe un operador, se tiene que usar una función.

25. (25) Cuando se programa una página ASP:

a) VBScript es el único lenguaje que se puede emplear.

b) JavaScript es el único lenguaje que se puede emplear.

c) En la instalación por defecto (estándar) se pueden emplear tanto VBScriptcomo JavaScript.

d) Las anteriores respuestas no son correctas.

Page 39: Programacion Internet
Page 40: Programacion Internet

2.2. Septiembre de 2002 17

2.2. Septiembre de 20021. (26) Cuando nos referimos a Internet y a la Web:

a) Internet incluye a la Web.

b) La Web incluye a Internet.

c) Nos estamos refiriendo a lo mismo.

d) Las anteriores respuestas no son correctas.

2. (27) Si deseamos finalizar o abortar la sesión de un usuario en JSP se emplea:

a) session.invalidate.

b) session.abandon.

c) server.invalidate.

d) response.abandon.

3. (28) La estructura básica de una página web es:

a) <Html><Head> ... </Head><Body> ... </Body></Html>.

b) <html><head> ... </head><body> ... </body></html>.

c) <HTML><HEAD> ... </HEAD><BODY> ... </BODY></HTML>.

d) Todas las respuestas son correctas.

4. (29) El protocolo HTTP fue inventado por:

a) Larry Roberts.

b) Marc Andresseen.

c) Vinton Cerf.

d) Las anteriores respuestas no son correctas.

5. (30) Para insertar un salto de línea en una página HTML se emplea la etiqueta:

a) <BR>.

b) &nbsp;.

c) <BK>.

d) Las anteriores respuestas no son correctas.

6. (31) Para emplear variables globales a todos los usuarios, en ASP se utiliza:

a) El objeto Session.

b) El objeto Application.

Page 41: Programacion Internet

18 Capítulo 2. Exámenes sin solución

c) El objeto Server.d) La a) y la b) son correctas.

7. (32) ¿Cuáles de las siguientes etiquetas se emplean para crear tablas?

a) <table>, <tr> y <tt>.b) <table>, <tf> y <td>.c) <tr>, <td> y <th>.d) <tr>, <td> y <tt>.

8. (33) En JavaScript, las cadenas literales (constantes) se escriben:

a) Como secuencias de caracteres encerrados entre comillas dobles (" ... ").b) Como secuencias de caracteres encerrados entre llaves ({ ... }).c) Como secuencias de caracteres encerrados entre comillas simples (’ ...

’).d) La a) y la c) son correctas.

9. (34) De las siguientes afirmaciones sobre Java, cuál no es cierta:

a) El propósito inicial fue el desarrollo de aplicaciones en Internet.b) Es un lenguaje multiplataforma.c) Es un lenguaje fuertemente tipado.d) Incorpora un recolector de basura.

10. (35) Cuál de los siguientes es el origen de Internet:

a) ARCNET.b) ETHERNET.c) MILNET.d) ARPANET.

11. (36) Para insertar una imagen en una página web se emplea la etiqueta:

a) <IMG> ... </IMG>.b) <A> ... </A>.c) <IMAGE> ... </IMAGE>.d) Las anteriores respuestas no son correctas.

12. (37) ¿Qué significa ASP?:

a) Active Standard Pages.

Page 42: Programacion Internet

2.2. Septiembre de 2002 19

b) Active Server Pages.

c) Active Software Pages.

d) Las anteriores respuestas no son correctas.

13. (38) ¿Cómo se indicaría en una página web que la función de un enlace es enviarun correo electrónico? En la dirección del enlace se escribiría:

a) La dirección de correo:[email protected]

b) La palabra mailto: seguida de la dirección de correo:mailto:[email protected]

c) La dirección de correo seguida del texto que se quiere enviar:[email protected] "Este es el correo que te envío"

d) Todas las respuestas son correctas.

14. (39) Los formatos de imágenes que aceptan la mayoría de los navegadores son:

a) GIF, JPG y BMP.

b) GIF, TIFF y PNG.

c) GIF, JPG y MPG.

d) Las anteriores respuestas no son correctas.

15. (40) Cuando un cliente web envía la información de un formulario al servidor:

a) Las distintas parejas campo=valor se separan por espacios en blanco.

b) Las distintas parejas campo=valor se separan por “&”.

c) Las distintas parejas campo=valor se separan por “+”.

d) Las distintas parejas campo=valor se separan por “ %”.

16. (41) Si en una tabla se modifica el color de fondo de la tabla y el color de fondode una celda:

a) El color de fondo de la tabla domina sobre el color de fondo de la celda.

b) El color de fondo de la celda domina sobre el color de fondo de la tabla.

c) El color de fondo de una celda no se puede definir.

d) Las anteriores respuestas no son correctas.

17. (42) De las siguientes tecnologías, ¿cuál se emplea para programar un clienteweb?:

a) CGI.

Page 43: Programacion Internet

20 Capítulo 2. Exámenes sin solución

b) ASP.

c) HTML.

d) ColdFusion.

18. (43) La etiqueta <TD> ... </TD> define:

a) Una fila de una tabla.

b) Una celda de una tabla.

c) Una celda que es encabezado de una tabla.

d) Las anteriores respuestas no son correctas.

19. (44) En SSI, para insertar el valor de una variable de entorno en una página seemplea:

a) <!-- #echo var="variable" -->.

b) <!-- #print var="variable" -->.

c) <!-- #getenv var="variable" -->.

d) Las anteriores respuestas no son correctas.

20. (45) Para cambiar el color de fondo de una página HTML se emplea:

a) El atributo COLOR de la etiqueta <BODY> ... </BODY>.

b) El atributo BGCOLOR de la etiqueta <BODY> ... </BODY>.

c) El atributo COLOR de la etiqueta <HTML> ... </HTML>.

d) El atributo BGCOLOR de la etiqueta <HTML> ... </HTML>.

21. (46) Si deseamos desde una página JSP redirigir al cliente a una nueva URL,usaremos:

a) session.redirect().

b) request.redirect().

c) response.redirect().

d) response.sendRedirect().

22. (47) Para finalizar la ejecución de una página ASP se emplea:

a) Response.Clear.

b) Response.End.

c) Response.Stop.

d) Las anteriores respuestas no son correctas.

Page 44: Programacion Internet

2.2. Septiembre de 2002 21

23. (48) Cuál de los siguientes enlaces es correcto:

a) <a href="http://www.ua.es/indice.html">UA</a>.

b) <a url="http://www.ua.es/indice.html">UA</a>.

c) <a name="http://www.ua.es/indice.html">UA</a>.

d) Las anteriores respuestas no son correctas.

24. (49) En JavaScript, ¿cómo se escribe una sentencia condicional para comprobarque la variable “i” es igual a “5”?:

a) if (i = 5).

b) if (i == 5).

c) if i == 5 then.

d) if i = 5 then.

25. (50) En ASP, cuál de las siguientes afirmaciones es cierta:

a) Todos los usuarios comparten el mismo objeto Session y Application.

b) Cada usuario tiene su objeto Session y Application.

c) Cada usuario tiene su objeto Session, pero todos los usuarios compartenel mismo objeto Application.

d) Las anteriores respuestas no son correctas.

Page 45: Programacion Internet
Page 46: Programacion Internet

2.3. Diciembre de 2002 23

2.3. Diciembre de 20021. (51) Los orígenes de Internet se sitúan en:

a) Las BBS.

b) ARPANET.

c) MILNET.

d) FidoNet.

2. (52) Al decir TCP/IP, estamos hablando de:

a) Un conjunto de protocolos.

b) El sistema de direcciones de máquinas en Internet.

c) Un protocolo para transmitir páginas web.

d) Un sistema para conectarse a Internet con un módem.

3. (53) La estandarización de la Web es tarea de:

a) Microsoft y sus compañías asociadas.

b) Netscape y sus compañías asociadas

c) W3C.

d) IEEE.

4. (54) De las siguientes tecnologías, ¿cuál no se emplea para programar un clienteweb?:

a) HTML.

b) SSI.

c) JavaScript.

d) VRML.

5. (55) Una Intranet es:

a) Una red global que conecta millones de ordenadores por todo el mundo.

b) Una red privada basada en TCP/IP.

c) Una red pública basada en TCP/IP.

d) Las anteriores respuestas no son correctas.

6. (56) La etiqueta <OL> define:

a) Listas no ordenadas.

Page 47: Programacion Internet

24 Capítulo 2. Exámenes sin solución

b) Listas ordenadas.

c) Elementos en una lista.

d) Esta etiqueta no existe.

7. (57) ¿Cómo se puede abrir un enlace en una ventana nueva “siempre”?:

a) Hace falta emplear código de JavaScript.

b) <a href="url" target="_blank">.

c) <a href="url" target="blank">.

d) <a href="url" target="_top">.

8. (58) Para alinear a la izquierda el contenido de una celda de una tabla se emplea:

a) <td alignleft>.

b) <td align="left">.

c) <td valign="left">.

d) Las anteriores respuestas no son correctas.

9. (59) Para colocar en un formulario un área de texto multilínea, se emplea laetiqueta:

a) <input type="text">.

b) <input type="textarea">.

c) <input type="multiline">.

d) Las anteriores respuestas no son correctas.

10. (60) El esqueleto básico de una página HTML es:

a) <HTML>, <HEAD>, <BODY>, </BODY>, </HTML>.

b) <HTML>, <HEAD>, <BODY>, </HEAD>, </BODY>.

c) <HTML>, <HEAD>, <BODY>, </BODY>, </HEAD>.

d) Las anteriores respuestas no son correctas.

11. (61) En JavaScript, a la hora de concatenar cadenas, el mejor operador es:

a) “+”.

b) “&”.

c) “.”.

d) No existe un operador para concatenar cadenas, se tienen que emplearfunciones del objeto String.

Page 48: Programacion Internet

2.3. Diciembre de 2002 25

12. (62) En JavaScript, los índices para los caracteres de una cadena empiezan en:

a) -1.

b) 0.

c) 1.

d) 2, porque en la posición 1 se almacena la longitud de la cadena.

13. (63) Cuál es la forma correcta de hacer referencia un fichero externo que contienecódigo de JavaScript:

a) <script src="fichero.js">.

b) <script href="fichero.js">.

c) <script link="fichero.js">.

d) Las anteriores respuestas no son correctas.

14. (64) En JavaScript, ¿cómo se abre una ventana nueva del navegador?:

a) window.open("pagina.html", "nueva").

b) window.new("pagina.html", "nueva").

c) document.open("pagina.html", "nueva").

d) document.new("pagina.html", "nueva").

15. (65) Para obtener la información que un cliente web envía al servidor web, unprograma CGI:

a) Consulta la variable de entorno REQUEST.

b) Consulta la variable de entorno CONTENT.

c) Consulta la variable de entorno QUERY.

d) Las anteriores respuestas no son correctas.

16. (66) En SSI, para insertar el tamaño de un archivo en una página se emplea:

a) <!-- #size file="archivo" -->.

b) <!-- #exec file="archivo" -->.

c) <!-- #include size="archivo" -->.

d) Las anteriores respuestas no son correctas.

17. (67) En VBScript, respecto a la declaración de variables:

a) Siempre hay que declarar las variables.

b) Se puede forzar la declaración con Option Implicit.

Page 49: Programacion Internet

26 Capítulo 2. Exámenes sin solución

c) Se declaran con la palabra reservada Dim.

d) La b) y la c) son correctas.

18. (68) ¿Qué hora mostrará la instrucción < % Response.Write Time %> en unapágina ASP?

a) La hora en el servidor.

b) La hora en el cliente.

c) Depende de la directiva <@ RUNAT="Server|Client" @>.

d) Depende del valor de Request.Time.

19. (69) Si deseamos desde una página ASP redirigir al cliente a una nueva URL,usaremos:

a) Session.Redirect.

b) Request.Redirect.

c) Server.Redirect.

d) Response.Redirect.

20. (70) Respecto al Global.asa, señala cuál de las siguientes afirmaciones es falsa:

a) En él se declaran los eventos de inicio y finalización de los objetos Applicationy Session.

b) Es un fichero obligatorio en cualquier aplicación web realizada con ASP.

c) No es accesible desde el cliente.

d) El código incluido en él no puede volcar datos en la página devuelta.

21. (71) Para acceder a las variables de entorno desde una página ASP se emplea:

a) Request.ServerVariables.

b) Request.GetVariables.

c) Application.ServerVariables.

d) Application.GetVariables.

22. (72) En ASP, ¿cómo se obtienen los datos enviados desde un formulario medianteel método GET?:

a) Mediante Request.QueryString.

b) Mediante Request.Form.

c) Mediante Request.GetForm.

d) Las anteriores respuestas no son correctas.

Page 50: Programacion Internet

2.3. Diciembre de 2002 27

23. (73) Cuál de las siguientes afirmaciones no es cierta:

a) JSP y servlet son tecnologías basadas en Java.

b) Tanto JSP como servlet son tecnología de scripting (permiten integrarcódigo de cliente y de servidor).

c) JSP es una tecnología con más prestaciones que servlets.

d) Tanto JSP como servlet permiten utilizar componentes de software (Java-Beans).

24. (74) Cuál de las siguientes sintaxis no se emplea en los comentarios de códigode JSP:

a) ’ comentario.

b) // comentario.

c) /* comentario */.

d) < %-- comentario -- %>.

25. (75) De las siguientes afirmaciones sobre Java, cuál es cierta:

a) Ha sido desarrollado por W3C.

b) Sólo se soporta en las siguiente plataformas: Windows, Linux y MacOS.

c) Es un lenguaje basado en objetos.

d) Es un lenguaje fuertemente tipado.

Page 51: Programacion Internet
Page 52: Programacion Internet

2.4. Examen extra 29

2.4. Examen extra1. (76) ¿Qué significa ASP?:

a) Active Standard Pages.

b) Active Server Pages.

c) Active Software Pages.

d) Las anteriores respuestas no son correctas.

2. (77) Los orígenes de Internet se sitúan en:

a) Las BBS.

b) ARPANET.

c) MILNET.

d) FidoNet.

3. (78) El protocolo HTTP fue inventado por:

a) Tim Berners-Lee.

b) Marc Andresseen.

c) Linus Torvalds.

d) Steve Jobs.

4. (79) Si deseamos desde una página ASP redirigir al cliente a una nueva URL,usaremos:

a) Session.Redirect.

b) Request.Redirect.

c) Server.Redirect.

d) Response.Redirect.

5. (80) De las siguientes tecnologías, ¿cuál no se emplea para programar un servidorweb?:

a) Servlets.

b) Applets.

c) SSI.

d) ColdFusion.

6. (81) En SSI, para insertar el tamaño de un archivo en una página se emplea:

a) <!-- #size file="archivo" -->.

Page 53: Programacion Internet

30 Capítulo 2. Exámenes sin solución

b) <!-- #exec file="archivo" -->.

c) <!-- #include size="archivo" -->.

d) Las anteriores respuestas no son correctas.

7. (82) Respecto a XHTML, señala cuál de las siguientes afirmaciones es falsa:

a) Las etiquetas y atributos tienen que escribirse siempre en minúsculas.

b) El valor de los atributos tiene que ir entre comillas.

c) No se admiten atributos sin valor.

d) No existen etiquetas vacías.

8. (83) Para emplear variables globales a todos los usuarios, en ASP se utiliza:

a) El objeto Session.

b) El objeto Application.

c) El objeto Server.

d) La a) y la b) son correctas.

9. (84) La etiqueta <P> ... </P> se emplea para:

a) Marcar párrafos de texto.

b) Destacar el texto con un formato especial.

c) Aumentar la sangría del texto.

d) Las anteriores respuestas no son correctas.

10. (85) Si deseamos finalizar o abortar la sesión de un usuario en JSP se emplea:

a) session.invalidate.

b) session.abandon.

c) server.invalidate.

d) response.abandon.

11. (86) Para insertar un salto de línea en una página HTML se emplea la etiqueta:

a) <BR>.

b) &nbsp;.

c) <BK>.

d) Las anteriores respuestas no son correctas.

12. (87) Para acceder a las variables de entorno desde una página ASP se emplea:

Page 54: Programacion Internet

2.4. Examen extra 31

a) Request.ServerVariables.

b) Request.GetVariables.

c) Application.ServerVariables.

d) Application.GetVariables.

13. (88) En JavaScript, si queremos mostrar un mensaje de alerta, usaremos:

a) window.alert("mensaje").

b) window.alert = "mensaje".

c) document.alert("mensaje").

d) windows.alert("mensaje").

14. (89) Para alinear a la izquierda el contenido de una celda de una tabla se emplea:

a) <td alignleft>.

b) <td align="left">.

c) <td valign="left">.

d) Las anteriores respuestas no son correctas.

15. (90) Un programa CGI:

a) Sólo puede recibir información por la entrada estándar.

b) Se tiene que programar en un lenguaje compilado.

c) Mantiene automáticamente el estado (sesión) entre una conexión y otra.

d) Las anteriores respuestas no son correctas.

16. (91) Una Intranet es:

a) Una red global que conecta millones de ordenadores por todo el mundo.

b) Una red privada basada en TCP/IP.

c) Una red pública basada en TCP/IP.

d) Las anteriores respuestas no son correctas.

17. (92) En la siguiente petición, “pag.asp?id=123”, ¿cómo obtenemos el valor de“id” en la página ASP “pag.asp”?:

a) Request.Form("id").

b) Request.QueryString("id").

c) Request("id").

Page 55: Programacion Internet

32 Capítulo 2. Exámenes sin solución

d) La b) y la c) son correctas.

18. (93) Cuál de los siguientes enlaces es correcto:

a) <a href="http://www.ua.es/indice.html">UA</a>.

b) <a url="http://www.ua.es/indice.html">UA</a>.

c) <a name="http://www.ua.es/indice.html">UA</a>.

d) Las anteriores respuestas no son correctas.

19. (94) Cuando un servicio web recibe una petición sobre una página JSP:

a) Se interpreta el código de la página JSP y se devuelve una respuesta.

b) Se ejecuta directamente el servlet correspondiente a la página JSP.

c) Se busca la página JSP en la caché y se interpreta su código.

d) Las anteriores respuestas no son correctas.

20. (95) Cuando nos referimos a Internet y a la Web:

a) Internet incluye a la Web.

b) La Web incluye a Internet.

c) Nos estamos refiriendo a lo mismo.

d) Las anteriores respuestas no son correctas.

21. (96) ¿Cómo se indicaría en una página web que la función de un enlace es enviarun correo electrónico? En la dirección del enlace se escribiría:

a) La dirección de correo:[email protected]

b) La palabra mailto: seguida de la dirección de correo:mailto:[email protected]

c) La dirección de correo seguida del texto que se quiere enviar:[email protected] "Este es el correo que te envío"

d) Todas las respuestas son correctas.

22. (97) Respecto a la petición “file:///localhost/p.asp” ejecutada en un orde-nador que posee el servidor Microsoft Personal Web Server:

a) El código ASP de la página se ejecuta si el servidor web está iniciado.

b) El código ASP de la página no se ejecuta.

c) El código ASP de la página no se ejecuta si el servidor web no está iniciado.

d) La a) y la c) son correctas.

Page 56: Programacion Internet

2.4. Examen extra 33

23. (98) En JavaScript, las cadenas literales (constantes) se escriben:

a) Como secuencias de caracteres encerrados entre comillas dobles (" ... ").

b) Como secuencias de caracteres encerrados entre llaves ({ ... }).

c) Como secuencias de caracteres encerrados entre comillas simples (’ ...’).

d) La a) y la c) son correctas.

24. (99) Cuál de las siguientes sintaxis no se emplea en los comentarios de códigode JSP:

a) ’ comentario.

b) // comentario.

c) /* comentario */.

d) < %-- comentario -- %>.

25. (100) En SSI, para insertar el valor de una variable de entorno en una páginase emplea:

a) <!-- #echo var="variable" -->.

b) <!-- #print var="variable" -->.

c) <!-- #getenv var="variable" -->.

d) Las anteriores respuestas no son correctas.

Page 57: Programacion Internet
Page 58: Programacion Internet

Capítulo 3

Exámenes con solución

En este capítulo se presentan los mismos exámenes que los presentados en elCapítulo 2, pero con la correspondiente solución. Además, cada pregunta contieneuna referencia a la explicación que indica cuál es la respuesta correcta y por qué. Lasexplicaciones se presentan en el siguiente capítulo.

35

Page 59: Programacion Internet
Page 60: Programacion Internet

3.1. Febrero de 2002 37

3.1. Febrero de 20021. (1) En las arquitecturas cliente/servidor:

a) (X) La parte cliente se conoce como front-end y la servidor comoback-end.

b) La parte cliente se conoce como back-end y la servidor como front-end.c) La parte cliente se conoce como display-end y la servidor como process-end.d) Las anteriores respuestas no son correctas.

(Explicación 9, página 69)

2. (2) Respecto a XHTML, señala cuál de las siguientes afirmaciones es falsa:

a) Las etiquetas y atributos tienen que escribirse siempre en minúsculas.b) El valor de los atributos tiene que ir entre comillas.c) No se admiten atributos sin valor.d) (X) No existen etiquetas vacías.

(Explicación 14, página 72)

3. (3) En la siguiente petición, “pag.asp?id=123”, ¿cómo obtenemos el valor de“id” en la página ASP “pag.asp”?:

a) Request.Form("id").b) Request.QueryString("id").c) Request("id").d) (X) La b) y la c) son correctas.

(Explicación 47, página 96)

4. (4) De las siguientes afirmaciones sobre Java, cuál no es cierta:

a) (X) El propósito inicial fue el desarrollo de aplicaciones en Inter-net.

b) Es un lenguaje multiplataforma.c) Es un lenguaje fuertemente tipado.d) Incorpora un recolector de basura.

(Explicación 62, página 105)

5. (5) De las siguientes tecnologías, ¿cuál se emplea para programar un clienteweb?:

a) CGI.b) ASP.

Page 61: Programacion Internet

38 Capítulo 3. Exámenes con solución

c) (X) HTML.

d) ColdFusion.(Explicación 10, página 69)

6. (6) El sistema que se emplea en Internet para traducir un nombre de dominioen dirección IP se llama:

a) Name Resolution System.

b) Direct Name System.

c) Domain System Name.

d) (X) Domain Name System.(Explicación 1, página 63)

7. (7) Respecto a la petición “file:///localhost/p.asp” ejecutada en un orde-nador que posee el servidor Microsoft Personal Web Server:

a) El código ASP de la página se ejecuta si el servidor web está iniciado.

b) (X) El código ASP de la página no se ejecuta.

c) El código ASP de la página no se ejecuta si el servidor web no está iniciado.

d) La a) y la c) son correctas.(Explicación 48, página 97)

8. (8) Cuando un servicio web recibe una petición sobre una página JSP:

a) Se interpreta el código de la página JSP y se devuelve una respuesta.

b) Se ejecuta directamente el servlet correspondiente a la página JSP.

c) Se busca la página JSP en la caché y se interpreta su código.

d) (X) Las anteriores respuestas no son correctas.(Explicación 64, página 106)

9. (9) De las siguientes tecnologías, ¿cuál no se emplea para programar un servidorweb?:

a) Servlets.

b) (X) Applets.

c) SSI.

d) ColdFusion.(Explicación 11, página 70)

10. (10) El protocolo HTTP fue inventado por:

a) (X) Tim Berners-Lee.

Page 62: Programacion Internet

3.1. Febrero de 2002 39

b) Marc Andresseen.

c) Linus Torvalds.

d) Steve Jobs.(Explicación 2, página 63)

11. (11) Respecto a la programación con JSP, señala cuál no es cierta:

a) Las expresiones son simples volcados de datos a la página.

b) Las acciones únicamente tienen sintaxis basada en XML.

c) (X) Es necesario hacer una operación de conversión (cast) cuandoen una expresión se devuelvan datos que no sean de tipo String.

d) Las directivas tienen como propósito enviar instrucciones al motor de JSP.(Explicación 65, página 106)

12. (12) Un programa CGI:

a) Sólo puede recibir información por la entrada estándar.

b) Se tiene que programar en un lenguaje compilado.

c) Mantiene automáticamente el estado (sesión) entre una conexión y otra.

d) (X) Las anteriores respuestas no son correctas.(Explicación 40, página 90)

13. (13) El tiempo de vida de una sesión en ASP se puede configurar con:

a) (X) Session.Timeout.

b) Session.SetTimeout.

c) Session.ScriptTimeout.

d) Las anteriores respuestas no son correctas.(Explicación 49, página 97)

14. (14) Una Intranet es:

a) Una red global que conecta millones de ordenadores por todo el mundo.

b) (X) Una red privada basada en TCP/IP.

c) Una red pública basada en TCP/IP.

d) Las anteriores respuestas no son correctas.(Explicación 12, página 71)

15. (15) JavaScript es un lenguaje de programación:

a) Orientado a objetos.

Page 63: Programacion Internet

40 Capítulo 3. Exámenes con solución

b) (X) Basado en objetos.c) Sin objetos.d) Las anteriores respuestas no son correctas.

(Explicación 30, página 83)

16. (16) Desde una página ASP, para enviar información al cliente se emplea elobjeto:

a) Request.b) (X) Response.c) Session.d) Sender.

(Explicación 50, página 98)

17. (17) En SSI, para insertar en una página la fecha de la última modificación deun archivo se emplea:

a) <!-- #flastmod file="archivo" -->.b) <!-- #flastmod virtual="archivo" -->.c) <!-- #flastmod src="archivo" -->.d) (X) La a) y la b) son correctas.

(Explicación 44, página 93)

18. (18) Respecto al fichero Global.asa, señala cuál de las siguientes afirmacioneses falsa:

a) En él se declaran los eventos de inicio y finalización de los objetos Applicationy Session.

b) (X) Es un fichero obligatorio en cualquier aplicación web realiza-da con ASP.

c) No es accesible desde el cliente.d) El código incluido en él no puede escribir datos en la página devuelta.

(Explicación 51, página 99)

19. (19) El esqueleto básico de una página HTML es:

a) <HTML>, <HEAD>, <BODY>, </BODY>, </HTML>.b) <HTML>, <HEAD>, <BODY>, </HEAD>, </BODY>.c) <HTML>, <HEAD>, <BODY>, </BODY>, </HEAD>.d) (X) Las anteriores respuestas no son correctas.

(Explicación 15, página 72)

Page 64: Programacion Internet

3.1. Febrero de 2002 41

20. (20) La etiqueta <P> ... </P> se emplea para:

a) (X) Marcar párrafos de texto.

b) Destacar el texto con un formato especial.

c) Aumentar la sangría del texto.

d) Las anteriores respuestas no son correctas.(Explicación 16, página 73)

21. (21) En JavaScript, si queremos mostrar un mensaje de alerta, usaremos:

a) (X) window.alert("mensaje").

b) window.alert = "mensaje".

c) document.alert("mensaje").

d) windows.alert("mensaje").(Explicación 31, página 83)

22. (22) Desde una página ASP se puede acceder:

a) (X) Al sistema de archivos en el servidor.

b) Al sistema de archivos en el cliente.

c) A ambos sistemas de archivos.

d) Las anteriores respuestas no son correctas.(Explicación 52, página 99)

23. (23) Para obtener la información que un cliente web envía con una URL alservidor web, un programa CGI:

a) Consulta la variable de entorno QUERY_STRING.

b) Consulta la variable de entorno CONTENT.

c) Consulta la variable de entorno PATH_INFO.

d) (X) La a) y la c) son correctas.(Explicación 41, página 90)

24. (24) En VBScript, a la hora de concatenar cadenas, el mejor operador es:

a) “+”.

b) (X) “&” .

c) “.”.

d) No existe un operador, se tiene que usar una función.(Explicación 38, página 89)

Page 65: Programacion Internet

42 Capítulo 3. Exámenes con solución

25. (25) Cuando se programa una página ASP:

a) VBScript es el único lenguaje que se puede emplear.

b) JavaScript es el único lenguaje que se puede emplear.

c) (X) En la instalación por defecto (estándar) se pueden empleartanto VBScript como JavaScript.

d) Las anteriores respuestas no son correctas.(Explicación 53, página 101)

Page 66: Programacion Internet

3.2. Septiembre de 2002 43

3.2. Septiembre de 20021. (26) Cuando nos referimos a Internet y a la Web:

a) (X) Internet incluye a la Web.

b) La Web incluye a Internet.

c) Nos estamos refiriendo a lo mismo.

d) Las anteriores respuestas no son correctas.(Explicación 3, página 64)

2. (27) Si deseamos finalizar o abortar la sesión de un usuario en JSP se emplea:

a) (X) session.invalidate.

b) session.abandon.

c) server.invalidate.

d) response.abandon.(Explicación 66, página 109)

3. (28) La estructura básica de una página web es:

a) <Html><Head> ... </Head><Body> ... </Body></Html>.

b) <html><head> ... </head><body> ... </body></html>.

c) <HTML><HEAD> ... </HEAD><BODY> ... </BODY></HTML>.

d) (X) Todas las respuestas son correctas.(Explicación 15, página 72)

4. (29) El protocolo HTTP fue inventado por:

a) Larry Roberts.

b) Marc Andresseen.

c) Vinton Cerf.

d) (X) Las anteriores respuestas no son correctas.(Explicación 4, página 65)

5. (30) Para insertar un salto de línea en una página HTML se emplea la etiqueta:

a) (X) <BR>.

b) &nbsp;.

c) <BK>.

d) Las anteriores respuestas no son correctas.(Explicación 17, página 73)

Page 67: Programacion Internet

44 Capítulo 3. Exámenes con solución

6. (31) Para emplear variables globales a todos los usuarios, en ASP se utiliza:

a) El objeto Session.b) (X) El objeto Application.c) El objeto Server.d) La a) y la b) son correctas.

(Explicación 54, página 101)

7. (32) ¿Cuáles de las siguientes etiquetas se emplean para crear tablas?

a) <table>, <tr> y <tt>.b) <table>, <tf> y <td>.c) (X) <tr>, <td> y <th>.d) <tr>, <td> y <tt>.

(Explicación 18, página 73)

8. (33) En JavaScript, las cadenas literales (constantes) se escriben:

a) Como secuencias de caracteres encerrados entre comillas dobles (" ... ").b) Como secuencias de caracteres encerrados entre llaves ({ ... }).c) Como secuencias de caracteres encerrados entre comillas simples (’ ...

’).d) (X) La a) y la c) son correctas.

(Explicación 32, página 84)

9. (34) De las siguientes afirmaciones sobre Java, cuál no es cierta:

a) (X) El propósito inicial fue el desarrollo de aplicaciones en Inter-net.

b) Es un lenguaje multiplataforma.c) Es un lenguaje fuertemente tipado.d) Incorpora un recolector de basura.

(Explicación 62, página 105)

10. (35) Cuál de los siguientes es el origen de Internet:

a) ARCNET.b) ETHERNET.c) MILNET.d) (X) ARPANET.

(Explicación 5, página 65)

Page 68: Programacion Internet

3.2. Septiembre de 2002 45

11. (36) Para insertar una imagen en una página web se emplea la etiqueta:

a) <IMG> ... </IMG>.

b) <A> ... </A>.

c) <IMAGE> ... </IMAGE>.

d) (X) Las anteriores respuestas no son correctas.(Explicación 19, página 74)

12. (37) ¿Qué significa ASP?:

a) Active Standard Pages.

b) (X) Active Server Pages.

c) Active Software Pages.

d) Las anteriores respuestas no son correctas.(Explicación 55, página 102)

13. (38) ¿Cómo se indicaría en una página web que la función de un enlace es enviarun correo electrónico? En la dirección del enlace se escribiría:

a) La dirección de correo:[email protected]

b) (X) La palabra mailto: seguida de la dirección de correo:mailto:[email protected]

c) La dirección de correo seguida del texto que se quiere enviar:[email protected] "Este es el correo que te envío"

d) Todas las respuestas son correctas.(Explicación 20, página 74)

14. (39) Los formatos de imágenes que aceptan la mayoría de los navegadores son:

a) GIF, JPG y BMP.

b) GIF, TIFF y PNG.

c) GIF, JPG y MPG.

d) (X) Las anteriores respuestas no son correctas.(Explicación 21, página 75)

15. (40) Cuando un cliente web envía la información de un formulario al servidor:

a) Las distintas parejas campo=valor se separan por espacios en blanco.

b) (X) Las distintas parejas campo=valor se separan por “&” .

c) Las distintas parejas campo=valor se separan por “+”.

Page 69: Programacion Internet

46 Capítulo 3. Exámenes con solución

d) Las distintas parejas campo=valor se separan por “ %”.(Explicación 42, página 90)

16. (41) Si en una tabla se modifica el color de fondo de la tabla y el color de fondode una celda:

a) El color de fondo de la tabla domina sobre el color de fondo de la celda.

b) (X) El color de fondo de la celda domina sobre el color de fondode la tabla.

c) El color de fondo de una celda no se puede definir.

d) Las anteriores respuestas no son correctas.(Explicación 22, página 75)

17. (42) De las siguientes tecnologías, ¿cuál se emplea para programar un clienteweb?:

a) CGI.

b) ASP.

c) (X) HTML.

d) ColdFusion.(Explicación 10, página 69)

18. (43) La etiqueta <TD> ... </TD> define:

a) Una fila de una tabla.

b) (X) Una celda de una tabla.

c) Una celda que es encabezado de una tabla.

d) Las anteriores respuestas no son correctas.(Explicación 23, página 76)

19. (44) En SSI, para insertar el valor de una variable de entorno en una página seemplea:

a) (X) <!-- #echo var="variable" -->.

b) <!-- #print var="variable" -->.

c) <!-- #getenv var="variable" -->.

d) Las anteriores respuestas no son correctas.(Explicación 45, página 94)

20. (45) Para cambiar el color de fondo de una página HTML se emplea:

a) El atributo COLOR de la etiqueta <BODY> ... </BODY>.

Page 70: Programacion Internet

3.2. Septiembre de 2002 47

b) (X) El atributo BGCOLOR de la etiqueta <BODY> ... </BODY>.c) El atributo COLOR de la etiqueta <HTML> ... </HTML>.d) El atributo BGCOLOR de la etiqueta <HTML> ... </HTML>.

(Explicación 24, página 76)

21. (46) Si deseamos desde una página JSP redirigir al cliente a una nueva URL,usaremos:

a) session.redirect().b) request.redirect().c) response.redirect().d) (X) response.sendRedirect().

(Explicación 67, página 109)

22. (47) Para finalizar la ejecución de una página ASP se emplea:

a) Response.Clear.b) (X) Response.End.c) Response.Stop.d) Las anteriores respuestas no son correctas.

(Explicación 56, página 102)

23. (48) Cuál de los siguientes enlaces es correcto:

a) (X) <a href="http://www.ua.es/indice.html">UA</a>.b) <a url="http://www.ua.es/indice.html">UA</a>.c) <a name="http://www.ua.es/indice.html">UA</a>.d) Las anteriores respuestas no son correctas.

(Explicación 25, página 76)

24. (49) En JavaScript, ¿cómo se escribe una sentencia condicional para comprobarque la variable “i” es igual a “5”?:

a) if (i = 5).b) (X) if (i == 5).c) if i == 5 then.d) if i = 5 then.

(Explicación 33, página 85)

25. (50) En ASP, cuál de las siguientes afirmaciones es cierta:

a) Todos los usuarios comparten el mismo objeto Session y Application.

Page 71: Programacion Internet

48 Capítulo 3. Exámenes con solución

b) Cada usuario tiene su objeto Session y Application.

c) (X) Cada usuario tiene su objeto Session, pero todos los usuarioscomparten el mismo objeto Application.

d) Las anteriores respuestas no son correctas.(Explicación 57, página 103)

Page 72: Programacion Internet

3.3. Diciembre de 2002 49

3.3. Diciembre de 2002

1. (51) Los orígenes de Internet se sitúan en:

a) Las BBS.

b) (X) ARPANET.

c) MILNET.

d) FidoNet.(Explicación 6, página 66)

2. (52) Al decir TCP/IP, estamos hablando de:

a) (X) Un conjunto de protocolos.

b) El sistema de direcciones de máquinas en Internet.

c) Un protocolo para transmitir páginas web.

d) Un sistema para conectarse a Internet con un módem.(Explicación 7, página 67)

3. (53) La estandarización de la Web es tarea de:

a) Microsoft y sus compañías asociadas.

b) Netscape y sus compañías asociadas

c) (X) W3C.

d) IEEE.(Explicación 8, página 68)

4. (54) De las siguientes tecnologías, ¿cuál no se emplea para programar un clienteweb?:

a) HTML.

b) (X) SSI.

c) JavaScript.

d) VRML.(Explicación 13, página 71)

5. (55) Una Intranet es:

a) Una red global que conecta millones de ordenadores por todo el mundo.

b) (X) Una red privada basada en TCP/IP.

c) Una red pública basada en TCP/IP.

Page 73: Programacion Internet

50 Capítulo 3. Exámenes con solución

d) Las anteriores respuestas no son correctas.(Explicación 12, página 71)

6. (56) La etiqueta <OL> define:

a) Listas no ordenadas.

b) (X) Listas ordenadas.

c) Elementos en una lista.

d) Esta etiqueta no existe.(Explicación 26, página 77)

7. (57) ¿Cómo se puede abrir un enlace en una ventana nueva “siempre”?:

a) Hace falta emplear código de JavaScript.

b) (X) <a href="url" target="_blank">.

c) <a href="url" target="blank">.

d) <a href="url" target="_top">.(Explicación 27, página 78)

8. (58) Para alinear a la izquierda el contenido de una celda de una tabla se emplea:

a) <td alignleft>.

b) (X) <td align="left">.

c) <td valign="left">.

d) Las anteriores respuestas no son correctas.(Explicación 28, página 79)

9. (59) Para colocar en un formulario un área de texto multilínea, se emplea laetiqueta:

a) <input type="text">.

b) <input type="textarea">.

c) <input type="multiline">.

d) (X) Las anteriores respuestas no son correctas.(Explicación 29, página 81)

10. (60) El esqueleto básico de una página HTML es:

a) <HTML>, <HEAD>, <BODY>, </BODY>, </HTML>.

b) <HTML>, <HEAD>, <BODY>, </HEAD>, </BODY>.

c) <HTML>, <HEAD>, <BODY>, </BODY>, </HEAD>.

Page 74: Programacion Internet

3.3. Diciembre de 2002 51

d) (X) Las anteriores respuestas no son correctas.(Explicación 15, página 72)

11. (61) En JavaScript, a la hora de concatenar cadenas, el mejor operador es:

a) (X) “+” .

b) “&”.

c) “.”.

d) No existe un operador para concatenar cadenas, se tienen que emplearfunciones del objeto String.(Explicación 34, página 85)

12. (62) En JavaScript, los índices para los caracteres de una cadena empiezan en:

a) -1.

b) (X) 0.

c) 1.

d) 2, porque en la posición 1 se almacena la longitud de la cadena.(Explicación 35, página 86)

13. (63) Cuál es la forma correcta de hacer referencia un fichero externo que contienecódigo de JavaScript:

a) (X) <script src="fichero.js">.

b) <script href="fichero.js">.

c) <script link="fichero.js">.

d) Las anteriores respuestas no son correctas.(Explicación 36, página 86)

14. (64) En JavaScript, ¿cómo se abre una ventana nueva del navegador?:

a) (X) window.open("pagina.html", "nueva").

b) window.new("pagina.html", "nueva").

c) document.open("pagina.html", "nueva").

d) document.new("pagina.html", "nueva").(Explicación 37, página 87)

15. (65) Para obtener la información que un cliente web envía al servidor web, unprograma CGI:

a) Consulta la variable de entorno REQUEST.

b) Consulta la variable de entorno CONTENT.

Page 75: Programacion Internet

52 Capítulo 3. Exámenes con solución

c) Consulta la variable de entorno QUERY.

d) (X) Las anteriores respuestas no son correctas.(Explicación 43, página 91)

16. (66) En SSI, para insertar el tamaño de un archivo en una página se emplea:

a) <!-- #size file="archivo" -->.

b) <!-- #exec file="archivo" -->.

c) <!-- #include size="archivo" -->.

d) (X) Las anteriores respuestas no son correctas.(Explicación 46, página 94)

17. (67) En VBScript, respecto a la declaración de variables:

a) Siempre hay que declarar las variables.

b) Se puede forzar la declaración con Option Implicit.

c) (X) Se declaran con la palabra reservada Dim.

d) La b) y la c) son correctas.(Explicación 39, página 89)

18. (68) ¿Qué hora mostrará la instrucción < % Response.Write Time %> en unapágina ASP?

a) (X) La hora en el servidor.

b) La hora en el cliente.

c) Depende de la directiva <@ RUNAT="Server|Client" @>.

d) Depende del valor de Request.Time.(Explicación 58, página 103)

19. (69) Si deseamos desde una página ASP redirigir al cliente a una nueva URL,usaremos:

a) Session.Redirect.

b) Request.Redirect.

c) Server.Redirect.

d) (X) Response.Redirect.(Explicación 59, página 104)

20. (70) Respecto al Global.asa, señala cuál de las siguientes afirmaciones es falsa:

a) En él se declaran los eventos de inicio y finalización de los objetos Applicationy Session.

Page 76: Programacion Internet

3.3. Diciembre de 2002 53

b) (X) Es un fichero obligatorio en cualquier aplicación web realiza-da con ASP.

c) No es accesible desde el cliente.d) El código incluido en él no puede volcar datos en la página devuelta.

(Explicación 51, página 99)

21. (71) Para acceder a las variables de entorno desde una página ASP se emplea:

a) (X) Request.ServerVariables.b) Request.GetVariables.c) Application.ServerVariables.d) Application.GetVariables.

(Explicación 60, página 104)

22. (72) En ASP, ¿cómo se obtienen los datos enviados desde un formulario medianteel método GET?:

a) (X) Mediante Request.QueryString.b) Mediante Request.Form.c) Mediante Request.GetForm.d) Las anteriores respuestas no son correctas.

(Explicación 61, página 104)

23. (73) Cuál de las siguientes afirmaciones no es cierta:

a) JSP y servlet son tecnologías basadas en Java.b) (X) Tanto JSP como servlet son tecnología de scripting (permiten

integrar código de cliente y de servidor).c) JSP es una tecnología con más prestaciones que servlets.d) Tanto JSP como servlet permiten utilizar componentes de software (Java-

Beans).(Explicación 68, página 109)

24. (74) Cuál de las siguientes sintaxis no se emplea en los comentarios de códigode JSP:

a) (X) ’ comentario.b) // comentario.c) /* comentario */.d) < %-- comentario -- %>.

(Explicación 69, página 110)

Page 77: Programacion Internet

54 Capítulo 3. Exámenes con solución

25. (75) De las siguientes afirmaciones sobre Java, cuál es cierta:

a) Ha sido desarrollado por W3C.

b) Sólo se soporta en las siguiente plataformas: Windows, Linux y MacOS.

c) Es un lenguaje basado en objetos.

d) (X) Es un lenguaje fuertemente tipado.(Explicación 63, página 105)

Page 78: Programacion Internet

3.4. Examen extra 55

3.4. Examen extra1. (76) ¿Qué significa ASP?:

a) Active Standard Pages.

b) (X) Active Server Pages.

c) Active Software Pages.

d) Las anteriores respuestas no son correctas.(Explicación 55, página 102)

2. (77) Los orígenes de Internet se sitúan en:

a) Las BBS.

b) (X) ARPANET.

c) MILNET.

d) FidoNet.(Explicación 6, página 66)

3. (78) El protocolo HTTP fue inventado por:

a) (X) Tim Berners-Lee.

b) Marc Andresseen.

c) Linus Torvalds.

d) Steve Jobs.(Explicación 2, página 63)

4. (79) Si deseamos desde una página ASP redirigir al cliente a una nueva URL,usaremos:

a) Session.Redirect.

b) Request.Redirect.

c) Server.Redirect.

d) (X) Response.Redirect.(Explicación 59, página 104)

5. (80) De las siguientes tecnologías, ¿cuál no se emplea para programar un servidorweb?:

a) Servlets.

b) (X) Applets.

c) SSI.

Page 79: Programacion Internet

56 Capítulo 3. Exámenes con solución

d) ColdFusion.(Explicación 11, página 70)

6. (81) En SSI, para insertar el tamaño de un archivo en una página se emplea:

a) <!-- #size file="archivo" -->.b) <!-- #exec file="archivo" -->.c) <!-- #include size="archivo" -->.d) (X) Las anteriores respuestas no son correctas.

(Explicación 46, página 94)

7. (82) Respecto a XHTML, señala cuál de las siguientes afirmaciones es falsa:

a) Las etiquetas y atributos tienen que escribirse siempre en minúsculas.b) El valor de los atributos tiene que ir entre comillas.c) No se admiten atributos sin valor.d) (X) No existen etiquetas vacías.

(Explicación 14, página 72)

8. (83) Para emplear variables globales a todos los usuarios, en ASP se utiliza:

a) El objeto Session.b) (X) El objeto Application.c) El objeto Server.d) La a) y la b) son correctas.

(Explicación 54, página 101)

9. (84) La etiqueta <P> ... </P> se emplea para:

a) (X) Marcar párrafos de texto.b) Destacar el texto con un formato especial.c) Aumentar la sangría del texto.d) Las anteriores respuestas no son correctas.

(Explicación 16, página 73)

10. (85) Si deseamos finalizar o abortar la sesión de un usuario en JSP se emplea:

a) (X) session.invalidate.b) session.abandon.c) server.invalidate.d) response.abandon.

(Explicación 66, página 109)

Page 80: Programacion Internet

3.4. Examen extra 57

11. (86) Para insertar un salto de línea en una página HTML se emplea la etiqueta:

a) (X) <BR>.

b) &nbsp;.

c) <BK>.

d) Las anteriores respuestas no son correctas.(Explicación 17, página 73)

12. (87) Para acceder a las variables de entorno desde una página ASP se emplea:

a) (X) Request.ServerVariables.

b) Request.GetVariables.

c) Application.ServerVariables.

d) Application.GetVariables.(Explicación 60, página 104)

13. (88) En JavaScript, si queremos mostrar un mensaje de alerta, usaremos:

a) (X) window.alert("mensaje").

b) window.alert = "mensaje".

c) document.alert("mensaje").

d) windows.alert("mensaje").(Explicación 31, página 83)

14. (89) Para alinear a la izquierda el contenido de una celda de una tabla se emplea:

a) <td alignleft>.

b) (X) <td align="left">.

c) <td valign="left">.

d) Las anteriores respuestas no son correctas.(Explicación 28, página 79)

15. (90) Un programa CGI:

a) Sólo puede recibir información por la entrada estándar.

b) Se tiene que programar en un lenguaje compilado.

c) Mantiene automáticamente el estado (sesión) entre una conexión y otra.

d) (X) Las anteriores respuestas no son correctas.(Explicación 40, página 90)

16. (91) Una Intranet es:

Page 81: Programacion Internet

58 Capítulo 3. Exámenes con solución

a) Una red global que conecta millones de ordenadores por todo el mundo.

b) (X) Una red privada basada en TCP/IP.

c) Una red pública basada en TCP/IP.

d) Las anteriores respuestas no son correctas.(Explicación 12, página 71)

17. (92) En la siguiente petición, “pag.asp?id=123”, ¿cómo obtenemos el valor de“id” en la página ASP “pag.asp”?:

a) Request.Form("id").

b) Request.QueryString("id").

c) Request("id").

d) (X) La b) y la c) son correctas.(Explicación 47, página 96)

18. (93) Cuál de los siguientes enlaces es correcto:

a) (X) <a href="http://www.ua.es/indice.html">UA</a>.

b) <a url="http://www.ua.es/indice.html">UA</a>.

c) <a name="http://www.ua.es/indice.html">UA</a>.

d) Las anteriores respuestas no son correctas.(Explicación 25, página 76)

19. (94) Cuando un servicio web recibe una petición sobre una página JSP:

a) Se interpreta el código de la página JSP y se devuelve una respuesta.

b) Se ejecuta directamente el servlet correspondiente a la página JSP.

c) Se busca la página JSP en la caché y se interpreta su código.

d) (X) Las anteriores respuestas no son correctas.(Explicación 64, página 106)

20. (95) Cuando nos referimos a Internet y a la Web:

a) (X) Internet incluye a la Web.

b) La Web incluye a Internet.

c) Nos estamos refiriendo a lo mismo.

d) Las anteriores respuestas no son correctas.(Explicación 3, página 64)

21. (96) ¿Cómo se indicaría en una página web que la función de un enlace es enviarun correo electrónico? En la dirección del enlace se escribiría:

Page 82: Programacion Internet

3.4. Examen extra 59

a) La dirección de correo:[email protected]

b) (X) La palabra mailto: seguida de la dirección de correo:mailto:[email protected]

c) La dirección de correo seguida del texto que se quiere enviar:[email protected] "Este es el correo que te envío"

d) Todas las respuestas son correctas.(Explicación 20, página 74)

22. (97) Respecto a la petición “file:///localhost/p.asp” ejecutada en un orde-nador que posee el servidor Microsoft Personal Web Server:

a) El código ASP de la página se ejecuta si el servidor web está iniciado.

b) (X) El código ASP de la página no se ejecuta.

c) El código ASP de la página no se ejecuta si el servidor web no está iniciado.

d) La a) y la c) son correctas.(Explicación 48, página 97)

23. (98) En JavaScript, las cadenas literales (constantes) se escriben:

a) Como secuencias de caracteres encerrados entre comillas dobles (" ... ").

b) Como secuencias de caracteres encerrados entre llaves ({ ... }).

c) Como secuencias de caracteres encerrados entre comillas simples (’ ...’).

d) (X) La a) y la c) son correctas.(Explicación 32, página 84)

24. (99) Cuál de las siguientes sintaxis no se emplea en los comentarios de códigode JSP:

a) (X) ’ comentario.

b) // comentario.

c) /* comentario */.

d) < %-- comentario -- %>.(Explicación 69, página 110)

25. (100) En SSI, para insertar el valor de una variable de entorno en una páginase emplea:

a) (X) <!-- #echo var="variable" -->.

b) <!-- #print var="variable" -->.

Page 83: Programacion Internet

60 Capítulo 3. Exámenes con solución

c) <!-- #getenv var="variable" -->.

d) Las anteriores respuestas no son correctas.(Explicación 45, página 94)

Page 84: Programacion Internet

Capítulo 4

Explicaciones

En este capítulo se presenta las explicaciones de las preguntas presentadas en loscapítulos anteriores. Las explicaciones aparecen agrupadas por temas: Internet, Ar-quitecturas cliente/servidor, Aplicaciones web, HTML, JavaScript, VBScript, CGI,SSI, ASP, Java y JSP.

Cada explicación contiene una referencia a la correspondiente pregunta. Tambiénpuede contener referencias a otras preguntas y explicaciones relacionadas.

61

Page 85: Programacion Internet
Page 86: Programacion Internet

4.1. Internet 63

4.1. Internet

4.1.1. Explicación 1

(Pregunta 6, página 11)Domain Name System (DNS) es el sistema que se emplea en Internet para traducir

un nombre de dominio (por ejemplo, www.ua.es) en dirección Internet Protocol (IP)(193.170.202.20).

Fue inventado en 1983 en la Universidad de Wisconsin. Antes de su uso, cadaordenador debía de poseer un fichero (llamado hosts) que almacenaba la lista de todoslos ordenadores conectados a Internet. Para acceder a un determinado ordenador,bastaba con consultar este archivo para conocer su dirección IP. Por ejemplo:

127.0.0.1 localhost192.168.0.1 servidor192.168.0.2 impresora

Conforme el número de ordenadores conectados a Internet fue creciendo, el tamañode este fichero también creció y su mantenimiento era cada vez más costoso. Pararesolver este problema, se desarrollo el sistema DNS.

DNS es una base de datos distribuida con una estructura jerárquica. En estabase de datos se encuentran los nombres de dominio y las direcciones IP de todos losordenadores conectados a Internet. Para emplear este sistema únicamente hace faltaconocer la dirección IP de un servidor de DNS.

Todavía hoy existe el archivo hosts en muchos sistemas operativos, aunque yaprácticamente no se emplea. Por ejemplo, en Microsoft Windows XP, este archivo seencuentra en la siguiente ruta:\WINDOWS\system32\drivers\etc

4.1.2. Explicación 2

(Pregunta 10, página 12) (Pregunta 78, página 29)El protocolo HyperText Transfer Protocol (HTTP) fue inventado por Tim Berners-

Lee.Tim Berners-Lee, graduado en Física por la Universidad de Oxford, propuso en

1989 la creación de un sistema electrónico para compartir información a través deuna red de ordenadores mientras trabajaba en el Conseil Européenne pour le Recher-che Nucléaire (CERN). El objetivo de este sistema era resolver los problemas decomunicación, mantenimiento y actualización de información que existían en dichainstitución. Partiendo de esta propuesta desarrolló a principios de los años noventa laWeb. A él se deben los tres elementos que fueron clave en el nacimiento de la Web:HyperText Markup Language (HTML), como lenguaje para crear los contenidos dela Web; HTTP, como protocolo de comunicación entre los ordenadores de la Web;

Page 87: Programacion Internet

64 Capítulo 4. Explicaciones

y Universal Resource Locator (URL) como medio de localización (direccionamiento)de los distintos recursos en Internet. El 25 de octubre de 2002 le fue entregado elPremio Príncipe de Asturias de Investigación Científica y Técnica, junto con Lawren-ce Roberts, Robert Kahn y Vinton Cerf, en representación de las “miles de personasy muchas instituciones que han hecho posible este avance de nuestro tiempo”. Enla actualidad, es director del World Wide Web Consortium (W3C) y trabaja en elLaboratorio de Ciencias Informáticas del famoso Massachusetts Institute of Techno-logy (MIT).

Marc Andresseen, del National Center for Supercomputing Applications (NCSA)de la Universidad de Illinois, desarrolló junto con Eric Bina Mosaic for X en 1992, unnavegador gráfico de la Web para Unix. En 1993, él y sus compañeros desarrollaronsendas versiones de Mosaic para los sistemas operativos Apple MacOS y MicrosoftWindows. En diciembre de 1993, Marc Andresseen y sus compañeros abandonaronNCSA para crear su propia empresa, Mosaic Communications Corporation,que más tarde pasó a llamarse Netscape Communications Corporation.

Linus Torvalds es el creador de Linux, un sistema operativo basado en Unix delibre distribución que está disponible para distintas plataformas de hardware (Intel,Motorola, Sun Microsystems, etc.). La versión 0.01 de Linux se publicó en sep-tiembre de 1991. Distribuido mediante la licencia de GNU is Not Unix (GNU), elcódigo fuente de este sistema operativo es gratuito, lo que permite su copia, estu-dio y modificación. En la actualidad, Linus trabaja en Transmeta Corporation,fabricante del procesador Crusoe.

Steve Jobs es el actual jefe ejecutivo de Apple. En 1976 fundó junto con Ste-ve Wozniak la empresa Apple Computer Corporation. Ambos revolucionaronel mundo de la informática personal, primero con los modelos Apple I y II a finalesde los años 70 y más tarde con el modelo Macintosh en 1984. En 1985 dimitió deApple. En 1986 fundó Pixar, creadora de las películas de animación “Toy Story” y“Bichos”. En 1989 fundó NeXT Corporation, con la idea de fabricar un nuevo tipode ordenador personal con su propio sistema operativo. En 1993 NeXT Corpora-tion dejó de fabricar ordenadores, aunque continuó con el desarrollo de su sistemaoperativo. Finalmente, en 1996 Apple compró NeXT Corporation y Steve Jobsvolvió a Apple.

Preguntas relacionadas: 29Explicaciones relacionadas: 4

4.1.3. Explicación 3

(Pregunta 26, página 17) (Pregunta 95, página 32)Internet es un conjunto de diferentes redes conectadas entre sí, que equivale a una

red global que conecta millones de ordenadores por todo el mundo. El éxito de Internetse debe en gran medida al uso, por todos los ordenadores que se conectan a ella, deun protocolo común: TCP/IP. Dentro de esta red se ejecutan una serie de servicios:

Page 88: Programacion Internet

4.1. Internet 65

web, correo electrónico, transmisión de ficheros, etc. Al conjunto de ordenadores deInternet que ofrecen el servicio web se les denomina “la Web”.

La World Wide Web (WWW), conocida de forma abreviada como la Web, esuna red de ordenadores que ofrecen una serie de documentos (las páginas web) quecontienen texto, imágenes y otros recursos multimedia. El protocolo de comunica-ción es HTTP, el lenguaje de creación de documentos es HTML y el sistema dedireccionamiento y localización de los recursos es URL.

Por tanto, Internet incluye a la Web, pero no al revés.

4.1.4. Explicación 4(Pregunta 29, página 17)El protocolo HTTP fue desarrollado por Tim Berners-Lee.Lawrence (Larry) Roberts es considerado uno de los “padres de Internet”. En 1996

abandonó el MIT para incorporarse a Advanced Research Projects Agency (ARPA),donde dirigió el desarrollo de ARPANET, que posteriormente se convirtió en la actualInternet. En 1976 también participó en el desarrollo de X25, una red de conmutaciónde paquetes.

Marc Andresseen, del NCSA de la Universidad de Illinois, desarrolló junto conEric Bina Mosaic for X en 1992, un navegador gráfico de la Web para Unix. En 1993,él y sus compañeros desarrollaron sendas versiones de Mosaic para los sistemas ope-rativos Apple Macintosh y Microsoft Windows. En diciembre de 1993, Marc Andres-seen y sus compañeros abandonaron NCSA para crear su propia empresa, MosaicCommunications Corporation, que más tarde pasó a llamarse Netscape Com-munications Corporation.

Vinton Cerf es otro de los “padres de Internet”. Estuvo implicado desde los primerosaños en el desarrollo de ARPANET. En 1973, se unió al proyecto de Robert Kahn deinterconexión de redes. Su mayor contribución ha sido el desarrollo, junto a RobertKahn, de Transmission Control Protocol/Internet Protocol (TCP/IP), el protocoloque gobierna las comunicaciones en Internet y que permite conectar distintas redesindependientes entre sí.

Larry Roberts y Vinton Cerf recibieron el 25 de octubre de 2002 el Premio Príncipede Asturias de Investigación Científica y Técnica, junto con Tim Berners-Lee y RobertKahn.

Preguntas relacionadas: 10Explicaciones relacionadas: 2

4.1.5. Explicación 5(Pregunta 35, página 18)El origen de Internet se sitúa en ARPANET, un proyecto de la agencia ARPA del

Departamento de Defensa de los Estados Unidos de Norteamérica. Inaugurada a fina-les 1969, inicialmente conectaba entre sí distintos nodos establecidos en universidades

Page 89: Programacion Internet

66 Capítulo 4. Explicaciones

de los Estados Unidos. Los primeros cuatro nodos que se establecieron conectaban laUniversidad de California en Los Ángeles, el Stanford Research Institute, la Univer-sidad de California en Santa Bárbara y la Universidad de Utah.

ARCNET es el acrónimo de Attached Resource Computer Network, uno de lostipos de redes locales más antiguo, simple y barato. ARCNET fue desarrollado por laempresa Datapoint Corporation en 1977. Emplea una topología token ring, convelocidades de 2.5 Mbps, sobre distintos medios físicos (par trenzado, cable coaxial,etc.) y hasta 255 ordenadores. Una especificación posterior, ARCNET Plus, soportahasta 20 Mbps.

ETHERNET es el tipo de red local más empleado en la actualidad. Desarrolladopor Xerox Corporation en cooperación con DEC e Intel en 1976. ETHERNETemplea una topología en bus o en estrella (cuando se emplea un concentrador o hub).La versión básica permite velocidades de hasta 10 Mbps, pero versiones posteriorespermiten velocidades superiores: Fast Ethernet (100 Mbps) y Gigabit Ethernet (1Gbps).

En 1983, ARPANET se dividió en dos redes independientes: MILNET (formadapor 45 nodos de carácter militar) y ARPANET (68 nodos de carácter civil).

4.1.6. Explicación 6

(Pregunta 51, página 23) (Pregunta 77, página 29)Internet se originó a partir de una red anterior llamada ARPANET (un proyecto

de la agencia ARPA del Departamento de Defensa de los Estados Unidos de Nortea-mérica), la cual fue desarrollada por universidades estadounidenses. Fue inaugurada afinales de 1969 y en un principio conectó cuatro nodos situados en la Universidad deCalifornia en Los Ángeles, el Stanford Research Institute, la Universidad de Californiaen Santa Bárbara y la Universidad de Utah. Con el tiempo esta red creció y aumentóen usuarios y entidades conectadas por lo que hubo de separar las redes que agluti-naban los nodos civiles de los militares. En 1983, ARPANET se dividió en dos redesindependientes: MILNET (formada por 45 nodos de carácter militar) y ARPANET(68 nodos de carácter civil). Posteriormente, la red civil ARPANET paso a llamarseInternet.

Paralelamente a esta red, durante los 80 surgieron servicios telemáticos (ya seacomo iniciativas particulares, empresariales o de organismos públicos) llamadas Bu-lletin Board System (BBS) basadas en la Red de Telefonía Básica (RTB) y módems.Estas redes tuvieron mucho éxito durante un tiempo y poco a poco fueron sustituidaspor Internet conforme los usuarios comenzaron a utilizar ésta última. Las BBS eranservicios locales de información que requerían que el usuario se conectase realizandouna llamada telefónica (vía módem) al teléfono de la sede de la BBS, esto significabaque los usuarios tenían que llamar a un número y pagar la tarifa vigente (si queríanacceder a una BBS del extranjero tenían que llamar con tarifa internacional). Con elfin de abaratar costes y ampliar el radio de acción surgieron las agrupaciones de BBS

Page 90: Programacion Internet

4.1. Internet 67

que permitían a un usuario comunicarse e intercambiar información con otros usua-rios de otras BBS asociadas independientemente de su ubicación geográfica (aunquecon un considerable retardo) con solo una llamada local a la BBS de su entorno. LasBBS asociadas realizaban una sincronización e intercambio de mensajes y ficherosregularmente, con frecuencias de una o varias veces al día, según el servicio y el pre-supuesto. Una de las redes de BBS más famosas y con más aceptación fue FidoNet,que fue creada tras la unión de varias redes anteriores y con el objetivo de hacer frentea la incipiente Internet. En la Figura 4.1 se puede ver la página principal del sitio webde FidoNet.

Figura 4.1: Página principal del sitio web de FidoNet

4.1.7. Explicación 7(Pregunta 52, página 23)TCP/IP es un conjunto de protocolos que permiten que todo ordenador conec-

tado a una red pueda establecer comunicación con otros e intercambiar información.

Page 91: Programacion Internet

68 Capítulo 4. Explicaciones

Estos protocolos trabajan a distintos niveles de la red y tienen una tarea o especia-lización determinada. Existe un protocolo, el HTTP que esta diseñado para trans-mitir páginas web y sus objetos asociados (imágenes, documentos, etc.) por Internet.TCP/IP también integra otro protocolo que permite localizar un ordenador o ser-vidor en la red por medio de un sistema de direcciones de Internet. Esto requiereque toda máquina que forme parte de la red, posea una dirección, llamada direcciónIP única que le permite participar en la red (buscar servidores y ser encontrado porotras máquinas). Además, todo ordenador, que se conecte permanentemente o de for-ma temporal (con un modem, por ejemplo) a Internet necesita poder trabajar conel conjunto de protocolos TCP/IP para poderse comunicar con el resto de los orde-nadores de la red. En la Figura 4.2 se muestra el modelo de referencia de TCP/IPcomparado con el modelo de referencia Open System Interconnection (OSI).

Figura 4.2: Modelo de referencia TCP/IP

4.1.8. Explicación 8

(Pregunta 53, página 23)

El W3C es el organismo (sin ánimo de lucro) destinado a analizar, estudiar, apro-bar y recomendar protocolos, sistemas, software, hardware y en definitiva los estánda-res que funcionan por la red Internet. Algunos de estos estándares son designacionesde iure (previos a su implantación) y otros son de facto (aprobados tras un periodode coexistencia de varias normas, en el cual se establece cual es la más aceptada o lamás apropiada).

Page 92: Programacion Internet

4.2. Arquitecturas cliente/servidor 69

4.2. Arquitecturas cliente/servidor

4.2.1. Explicación 9

(Pregunta 1, página 11)En las arquitecturas cliente/servidor se distingue por un lado la parte cliente

(también llamada front-end) que interactúa con el usuario (hace de interfaz entre elusuario y el resto de la aplicación) y la parte servidor (o back-end) que interactúacon los recursos compartidos (bases de datos, impresoras, módems) e implementa lasreglas de negocio (business rules). Las denominaciones display-end y process-end notienen ningún sentido dentro de las arquitecturas cliente/servidor.

4.3. Aplicaciones web

4.3.1. Explicación 10

(Pregunta 5, página 11) (Pregunta 42, página 19)De las cuatro tecnologías, HTML es la única que se emplea para programar un

cliente web (Figura 4.3).HTML es el lenguaje de marcas que permite definir el formato y contenido de

una página web y que permite crear el hipertexto. HTML únicamente permite crearpáginas estáticas. Este lenguaje fue desarrollado por Tim Berners-Lee a finales de losaños ochenta y principio de los noventa.

Common Gateway Interface (CGI) es un estándar que define cómo un servidorweb puede utilizar programas externos. En concreto, este estándar define cómo losservidores web pasan los datos enviados por el cliente (el navegador) a los programasCGI y cómo estos programas tienen que devolver el resultado al servidor web para quelo reenvíe al cliente. Un CGI normalmente se programa en C , C++ o Perl, aunquepuede emplearse cualquier lenguaje de programación de propósito general.

Active Server Pages (ASP) es una tecnología de secuencias de comandos delservidor web que permite crear páginas web dinámicas en el servidor. ASP es unatecnología propietaria de Microsoft. Cuando un servidor web recibe una peticiónde una página ASP, procesa las secuencias de comando del servidor que contiene lapágina para generar la página web que se envía al cliente. Una página ASP puedecontener HTML y secuencias de comandos del servidor. Las páginas ASP suelentener la extensión .asp.

Por último, ColdFusion es otra tecnología de secuencias de comandos del servidormuy similar a ASP. ColdFusion fue inicialmente desarrollado por la empresa allaire,aunque en la actualidad pertenece a Macromedia. Al igual que ASP, ColdFusionpermite crear páginas web dinámicas en el servidor. Una página ColdFusion tambiénpuede contener HTML y secuencias de comandos del servidor. ColdFusion emplea el

Page 93: Programacion Internet

70 Capítulo 4. Explicaciones

lenguaje de etiquetas ColdFusion Markup Language (CFML). Las páginas ColdFusionsuelen tener la extensión .cfm.

Figura 4.3: Tecnologías empleadas en el cliente y el servidor web

Preguntas relacionadas: 9Explicaciones relacionadas: 11

4.3.2. Explicación 11

(Pregunta 9, página 12) (Pregunta 80, página 29)La única tecnología que no se emplea para programar un servidor web son los

applets (Figura 4.3).Los servlets son programas desarrollados con el lenguaje Java que se ejecutan

en el servidor web cuando éste recibe una petición que los invoca. Para ejecutar unservlet es necesario que el servidor disponga de una Máquina Virtual Java (MVJ).Las principales ventajas que ofrece esta tecnología son: está basada en Java, que esun lenguaje orientado a objetos muy potente, ofrece una extensa Application ProgramInterface (API) y es multiplataforma (a condición de que el sistema disponga de lacorrespondiente MVJ).

Los applets son pequeños programas desarrollados con el lenguaje Java que seincluyen como un elemento más dentro de una página web y que son ejecutados porel navegador (el cliente). Los applets permiten ampliar enormemente las posibilidadesde programación de los navegadores, ya que se programan con un lenguaje orientado

Page 94: Programacion Internet

4.3. Aplicaciones web 71

a objetos muy potente. El único inconveniente es que el navegador debe de disponerde una MVJ para poder ejecutar un applet.

Server Side Include (SSI) es una tecnología que permite incluir comandos en unapágina web y que son ejecutados por el servidor web antes de transmitir la páginaal cliente. Por ejemplo, SSI permite incluir en una página web el contenido de unfichero, la fecha de la última modificación de un fichero o el resultado producido porun programa al ejecutarse. El formato de un comando SSI es:<!-- #comando atributo="valor" -->

El comando más sencillo es #include, que permite insertar en una página web elcontenido de otro fichero. Desgraciadamente, no existe un estándar sobre SSI, por loque cada servidor web puede definir los comandos SSI de diferente forma. Sin em-bargo, algunos comandos, como #include o #exec, se han convertido en estándar defacto y su comportamiento es idéntico (o muy similar) en la mayoría de los servidoresweb. Las páginas que contienen comandos SSI suelen tener la extensión .shtml.

Por último, ColdFusion es una tecnología de secuencias de comandos del servidorque permite crear páginas web dinámicas en el servidor. ColdFusion fue inicialmentedesarrollado por la empresa allaire, aunque en la actualidad pertenece a Macrome-dia. Cuando un servidor web recibe una petición de una página, ColdFusion procesalas secuencias de comando del servidor que contiene la página para generar la páginaweb que se envía al cliente. Una página ColdFusion puede contener HTML y secuen-cias de comandos del servidor. ColdFusion emplea el lenguaje de etiquetas CFML.Las páginas ColdFusion suelen tener la extensión .cfm.

4.3.3. Explicación 12(Pregunta 14, página 13) (Pregunta 55, página 23) (Pregunta 91, página 31)Una intranet es una red de ordenadores privada basada en los protocolos que

gobiernan Internet (TCP/IP) que pertenece a una organización y que es accesibleúnicamente por los miembros o empleados de la misma. El servicio web de una intranettiene la misma funcionalidad y aspecto que cualquier otro de Internet con la diferenciaque su acceso es privado y esta bajo identificación del usuario.

Relacionado con el anterior término, llamamos extranet a una intranet que estaabierta parcial o totalmente a accesos externos. Si bien una intranet está protegidatras un cortafuegos (firewall) y sólo personal autorizado puede acceder, una extranetpermite varios niveles de accesibilidad para personal externo que no pertenece a laorganización, siempre y cuando tengan una cuenta que les de acceso.

4.3.4. Explicación 13(Pregunta 54, página 23)La única tecnología que no se emplea para programar un cliente web es SSI.HTML es el lenguaje de diseño de páginas web que interpretan los clientes web.

JavaScript es el lenguaje de programación asociado al HTML y su ámbito es el de una

Page 95: Programacion Internet

72 Capítulo 4. Explicaciones

página web, por tanto es una tecnología de cliente también. Virtual Reality ModelingLanguage (VRML) es un lenguaje de diseño o modelado de escenas tridimensionalesque pretenden simular espacios reales (lenguaje de modelado de escenas 3D de realidadvirtual). Este lenguaje esta basado en la misma filosofía que el HTML, funciona conun conjunto de etiquetas y modificadores que recibe un navegador (un cliente) y esteinterpreta las etiquetas para mostrar al usuario en pantalla la escena 3D diseñada.Incorpora un motor de movimiento que permite al usuario moverse por la escenacomo si estuviese en su interior. Es, por tanto, una tecnología de cliente porque todoocurre y se lleva a cabo en el ordenador del cliente que accede al mundo 3D. SSIson comandos que se incluyen en una página HTML y que son ejecutados por elservidor web antes de transmitir la página al cliente. Por tanto, se trata de tecnologíade servidor.

Preguntas relacionadas: 5 9 42Explicaciones relacionadas: 10 11

4.4. HTML

4.4.1. Explicación 14

(Pregunta 2, página 11) (Pregunta 82, página 30)En enero de 2000 aparece eXtensible HyperText Markup Language (XHTML)

1.0, el futuro sustituto de HTML. Como dice el propio estándar, se trata de “unareformulación de HTML en XML 1.0”. XHTML es el lenguaje HTML escrito segúnlas normas que impone Extensible Markup Language (XML). Por tanto, es una apli-cación concreta de XML y no deben confundirse entre sí. Las principales diferenciasentre HTML y XHTML 1.0 son:

Las etiquetas y atributos tienen que escribirse en minúsculas. Por ejemplo, <IMGSRC="logo.gif"> es correcto en HTML, pero no en XHTML (debería ser<img src="logo.gif">).

Los valores de los atributos tienen que ir entre comillas. Por ejemplo, <fontface=arial> es correcto en HTML, pero no en XHTML (debería ser <fontface="arial">).

No se admiten atributos sin valor. Por ejemplo, <hr noshade> es correcto enHTML, pero no en XHTML (debería ser <hr noshade="noshade">).

Todas las etiquetas tienen que aparecer por parejas (inicio y fin) o como eti-quetas vacías. Por ejemplo, la etiqueta <img src="logo.gif"> es correcta enHTML, pero no en XHTML (debería ser <img src="logo.gif"></img> ocomo etiqueta vacía <img src="logo.gif"/>).

Page 96: Programacion Internet

4.4. HTML 73

4.4.2. Explicación 15(Pregunta 19, página 14) (Pregunta 28, página 17) (Pregunta 60, página 24)Una página web es un documento HTML que se estructura en dos bloques: una

cabecera y un cuerpo. A su vez cada bloque tiene una estructura determinada. Estaestructura se indica con unas etiquetas que delimitan cada uno de los bloques de lasiguiente forma:

<HTML> <!-- Abrimos un documento HTML --><HEAD> <!-- Abrimos la cabecera -->... Aquí va el contenido de la cabecera ...</HEAD> <!-- Cerramos la cabecera --><BODY> <!-- Abrimos el cuerpo de la página web -->... Aquí se ubica el cuerpo de la página ...</BODY> <!-- Cerramos el cuerpo -->

</HTML> <!-- Cerramos la definición del documento -->

De forma resumida, la estructura básica de una página web es: <Html><Head> ...</Head><Body> ... </Body></Html>.

Como en HTML no se distinguen mayúsculas y minúsculas (las etiquetas <html>y <HTML> representan la misma etiqueta), también son válidas las etiquetas:

<html><head> ... </head><body> ... </body></html>.

<HTML><HEAD> ... </HEAD><BODY> ... </BODY></HTML>.

4.4.3. Explicación 16(Pregunta 20, página 14) (Pregunta 84, página 30)La etiqueta <P> ... </P> se emplea para marcar párrafos de texto. Esta eti-

queta posee el atributo ALIGN="left | center | right | justify" que permitemodificar el alineamiento del texto.

La recomendación de W3C sobre HTML 4.01 indica que la presentación visual deun párrafo depende del navegador (agente de usuario) que se emplee. Normalmente,el texto en un párrafo está alineado a la izquierda y se deja un espacio en blanco antesy después del párrafo.

4.4.4. Explicación 17(Pregunta 30, página 17) (Pregunta 86, página 30)Para insertar un salto de línea en una página HTML se emplea la etiqueta <BR>.

&nbsp; (también se puede usar &#160; or &#xA0;) es una entidad que representa unespacio en blanco que no se puede “romper” (non-breaking space), es decir, un espacioen blanco en el que no se puede producir un salto de línea y <BK> no existe por ahoraen el estándar de HTML.

Page 97: Programacion Internet

74 Capítulo 4. Explicaciones

4.4.5. Explicación 18

(Pregunta 32, página 18)Para crear tablas se emplean las etiquetas <tr>, <td> y <th>:

<tr> ... </tr> (table row): Define una fila de una tabla que contiene celdas.

<td> ... </td> (table data cell): Define una celda de datos de una tabla.

<th> ... </th> (table header cell): Define una celda de encabezamiento de unatabla. Este tipo de celdas suelen visualizarse con una apariencia distinta a la delas celdas de datos (por ejemplo, con el contenido en negrita).

Del resto de etiquetas, <table> sí que se emplea para crear una tabla (defineuna tabla), pero <tt> se emplea para especificar texto con formato teletipo (textomonoespaciado) y <tf> no existe por ahora en el estándar de HTML.

Preguntas relacionadas: 43Explicaciones relacionadas: 23

4.4.6. Explicación 19

(Pregunta 36, página 18)Para insertar una imagen se emplea la etiqueta <IMG> sin etiqueta de cierre. Por

tanto, <IMG> ... </IMG> no es una etiqueta correcta. La etiqueta <A> ... </A> seemplea para crear enlaces y la etiqueta <IMAGE> ... </IMAGE> no existe por ahoraen el estándar de HTML.

4.4.7. Explicación 20

(Pregunta 38, página 19) (Pregunta 96, página 32)Mediante el protocolo mailto: se puede enviar un correo electrónico cuando el

usuario pulse sobre un enlace. Realmente no se envía un correo electrónico automáti-camente: se abre el programa de correo electrónico que tenga configurado el usuariopor defecto y se crea un nuevo mensaje, pero no se envía hasta que el usuario no loconfirme.

La sintaxis de este protocolo es:mailto:dir1[,dir2,...][?opcion1[&opcion2&...]]

donde dir1, dir2, ... son direcciones de correo electrónico y opcion1,opcion2, ... es una lista de parámetros opcionales. Los principales valores que sepueden emplear aparecen en el Cuadro 4.1.

Estas opciones se pueden combinar en un único enlace. Sólo hay que tener encuenta que se tienen que separar con el símbolo “&” y que los valores de las opcionesse tienen que escribir empleando “codificación URL” (URL encoding). En esta codi-ficación, una serie de caracteres especiales, como por ejemplo “&”, “ %”, “$” o “ñ”, se

Page 98: Programacion Internet

4.4. HTML 75

Opción de envío Accióncc (carbon copy) Indica el envío de copias del mensaje a

otros destinatariosbcc (blind carbon copy) Indica el envío de copias del mensaje a

otros destinatarios ocultossubject Define el título del mensajebody Especifica el texto del mensaje

Cuadro 4.1: Opciones de envío con el protocolo mailto:

codifican usando el símbolo “ %” seguido de dos dígitos que expresan, en hexadeci-mal, su código American Standard Code for Information Interchange (ASCII). Porejemplo, la cadena “& %$ñ” se codificaría como “ %26 %25 %24 %F1”.

4.4.8. Explicación 21(Pregunta 39, página 19)Ninguna de las respuestas es correcta. Los formatos de imágenes que aceptan la

mayoría de los navegadores son Graphics Interchange Format (GIF) y Joint Photo-graphic Experts Group (JPG). Portable Network Graphics (PNG) es otro formatográfico destinado para la Web que cada vez aceptan más navegadores.

Bit-map (BMP) es un formato gráfico de mapa de bits estándar en los sistemasoperativos Microsoft Windows. Tagged Image File Format (TIFF) es un formato grá-fico de mapa de bits muy popular tanto en entorno Microsoft Windows como AppleMacintosh. Por último, Moving Picture Experts Group (MPG) es un formato de vídeodigital muy empleado por el nivel de compresión que obtiene.

4.4.9. Explicación 22(Pregunta 41, página 19)Si en una tabla se modifica el color de fondo de la tabla y el color de fondo de una

celda, el color de fondo de la celda domina sobre el color de fondo de la tabla.Cuando en una tabla se modifica el color de distintos elementos (tabla, fila o celda)

domina siempre el último color modificado, tal como se indica a continuación:

Color de la tabla

• Color de la fila

◦ Color de la celda

El siguiente ejemplo muestra una tabla con distintos colores de fondo para la tabla,la fila y la celda. En la Figura 4.4 vemos como se muestra esta página en un navegador.

Page 99: Programacion Internet

76 Capítulo 4. Explicaciones

<HTML><HEAD><TITLE>Color de fondo de una tabla</TITLE></HEAD><BODY><CENTER><TABLE BORDER="1" BGCOLOR="Red">

<TR><TD>El color de fondo es rojo</TD><TD>Se muestra el color de fondo de la tabla</TD>

</TR><TR BGCOLOR="Green">

<TD>El color de fondo es verde</TD><TD>Se muestra el color de fondo de la fila</TD>

</TR><TR BGCOLOR="Green">

<TD BGCOLOR="Blue">El color de fondo es azul</TD><TD BGCOLOR="Blue">Se muestra el color de fondo dela celda</TD>

</TR></TABLE></CENTER></BODY></HTML>

4.4.10. Explicación 23

(Pregunta 43, página 20)La etiqueta <TD> ... </TD> define una celda de una tabla.Para definir una fila de una tabla se emplea la etiqueta <TR> ... </TR> y para

definir una celda que es encabezado de una tabla se emplea <TH> ... </TH>.Preguntas relacionadas: 32Explicaciones relacionadas: 18

4.4.11. Explicación 24

(Pregunta 45, página 20)Para cambiar el color de fondo de una página HTML se emplea el atributo

BGCOLOR de la etiqueta <BODY> ... </BODY>.El atributo COLOR no existe en la etiqueta <BODY> ... </BODY> y la etiqueta

<HTML> ... </HTML> no posee ni el atributo COLOR ni el atributo BGCOLOR.

Page 100: Programacion Internet

4.4. HTML 77

Figura 4.4: Ejemplo de tabla con color de fondo

4.4.12. Explicación 25

(Pregunta 48, página 21) (Pregunta 93, página 32)El enlace correcto es:

<a href="http://www.ua.es/indice.html">UA</a><a url="http://www.ua.es/indice.html">UA</a> no es correcto porque url

no es un atributo de la etiqueta <a> ... </a>.El enlace <a name="http://www.ua.es/indice.html">UA</a> no es correcto por-

que el atributo name se emplea para definir un destino de un enlace y no un enlaceen sí mismo: el valor del atributo name es un nombre de destino (un lugar dentro deun documento HTML) y no una URL.

4.4.13. Explicación 26

(Pregunta 56, página 23)La etiqueta <OL> permite definir una lista ordenada (ordered list). La etiqueta

<UL> define listas no ordenadas (unordered list). Para definir un elemento en ambostipos de lista se emplea la etiqueta <LI> (list item). Por ejemplo, el siguiente códigodefine una lista ordenada:

<OL><LI>Elemento 1</LI><LI>Elemento 2</LI>

Page 101: Programacion Internet

78 Capítulo 4. Explicaciones

<LI>...</LI><LI>Elemento N</LI>

</OL>

En la Figura 4.5, se puede observar como se muestra una lista ordenada y unalista no ordenada en un navegador:

Figura 4.5: Ejemplo de lista ordenada y no ordenada

4.4.14. Explicación 27

(Pregunta 57, página 24)Para provocar que se abra una ventana nueva del navegador al pulsar sobre un

enlace de una página, hay que añadir a la etiqueta <a> ... </a> que genera el enlaceel atributo target y asignarle el valor _blank. Por ejemplo:

<a href="url" target="_blank"> ... </a>

Así, sin necesidad de usar JavaScript, conseguimos que este enlace abra en unaventana nueva la URL de destino que especifiquemos.

Page 102: Programacion Internet

4.4. HTML 79

El atributo target de la etiqueta <a> ... </a> permite especificar el lugar dondese cargará el destino del enlace. Así, es posible determinar que un enlace se cargue enun marco determinado de la página, simplemente poniendo como valor del atributoel nombre del marco.

Existen cuatro valores predefinidos para el atributo target. Estos son:

_blank: abre el enlace en una ventana nueva.

_top: abre el enlace en la misma ventana, en el nivel superior de la jerarquía deventanas (marcos). De este modo, se pueden eliminar los marcos de una ventana.

_parent: abre el enlace en la misma ventana pero en el marco inmediatamentesuperior en la jerarquía de marcos del documento donde está contenido el enlace.

_self: abre el destino del enlace en la misma ventana (marco). Este es el valorpor defecto en caso de no especificar el atributo target.

4.4.15. Explicación 28

(Pregunta 58, página 24) (Pregunta 89, página 31)Para alinear a la izquierda el contenido de una celda de una tabla en HTML se

emplea la etiqueta <TD> ... </TD>, que es la que define las celdas de la tabla y secomplementa con el atributo align, que tiene que tomar el valor left. Por ejemplo:

<td align="left"> ... </td>

Con el atributo align se puede alinear todo el contenido de la celda: texto, imá-genes y otros objetos que contenga. El valor por defecto que toma este atributo esleft. Este atributo puede tomar los siguientes valores:

LEFT: ajusta el contenido a la izquierda de la celda. Ejemplo:<td align="LEFT"> ... </td>

CENTER: ajusta el contenido al centro de la celda. Ejemplo:<td align="CENTER"> ... </td>

RIGHT: alinea el contenido a la derecha de la celda. Ejemplo:<td align="RIGHT"> ... </td>

El contenido de una celda también se puede alinear verticalmente por medio delatributo valign. Este atributo puede tomar los siguientes valores:

TOP: alineación a la parte superior de la celda. Ejemplo:<td valign="TOP"> ... </td>

Page 103: Programacion Internet

80 Capítulo 4. Explicaciones

MIDDLE: alineación al centro de la celda. Ejemplo:<td valign="MIDDLE"> ... </td>

BOTTOM: alineación a la parte inferior de la celda. Ejemplo:<td valign="BOTTOM"> ... </td>

BASELINE: alineación a la línea base. Ejemplo:<td valign="BASELINE"> ... </td>.

Los atributos align y valign también son aplicables a otros elementos HTMLcomo párrafos (<P>), divisiones (<DIV>), imágenes (<IMG>), etc.

El siguiente ejemplo muestra una tabla con distinto alineamiento horizontal yvertical. En la Figura 4.6 vemos como se muestra esta página en una navegador.

<HTML><BODY><BR><BR><CENTER><TABLE BORDER="1"><TR ALIGN="CENTER">

<TD>Varias<BR>líneas<BR>de texto</TD><TD>Alineamiento CENTER</TD><TD>Alineamiento CENTER</TD><TD>Alineamiento CENTER</TD>

</TR><TR ALIGN="RIGHT" VALIGN="TOP">

<TD>Varias<BR>líneas<BR>de texto</TD><TD>Alineamiento RIGHT y TOP</TD><TD>Alineamiento RIGHT y TOP</TD><TD>Alineamiento RIGHT y TOP</TD>

</TR><TR>

<TD>Varias<BR>líneas<BR>de texto</TD><TD ALIGN="LEFT">Alineamiento LEFT</TD><TD ALIGN="CENTER">Alineamiento CENTER</TD><TD ALIGN="RIGHT">Alineamiento RIGHT</TD>

</TR><TR>

<TD>Varias<BR>líneas<BR>de texto</TD><TD VALIGN="TOP">Alineamiento TOP</TD><TD VALIGN="MIDDLE">Alineamiento MIDDLE</TD><TD VALIGN="BOTTOM">Alineamiento BOTTOM</TD>

</TR><TR VALIGN="MIDDLE">

Page 104: Programacion Internet

4.4. HTML 81

<TD>Varias<BR>líneas<BR>de texto</TD><TD VALIGN="TOP">Alineamiento TOP</TD><TD VALIGN="MIDDLE">Alineamiento MIDDLE</TD><TD VALIGN="BOTTOM">Alineamiento BOTTOM</TD>

</TR></TABLE></CENTER></BODY></HTML>

Figura 4.6: Alineamiento del contenido de una tabla

4.4.16. Explicación 29(Pregunta 59, página 24)Si deseamos ubicar en un formulario HTML un cuadro de texto multilínea debe-

mos hacerlo con la etiqueta:

<TEXTAREA NAME="..." COLS="..." ROWS="..." ...>...</TEXTAREA>

Page 105: Programacion Internet

82 Capítulo 4. Explicaciones

Esta etiqueta define un control de texto editable multilínea cuyo tamaño se definepor el valor del atributo COLS para las columnas y el valor de ROWS para las líneas detexto. Los principales atributos de esta etiqueta son:

COLS: define el número de columnas (anchura) que tiene el control.

ROWS: especifica el número de filas o líneas horizontales (altura) del cuadro detexto.

WRAP: especifica si las líneas más largas que la anchura del área de texto setienen que cortar para que se visualicen sin tener que realizar un desplazamientohorizontal. Los posibles valores de este atributo son:

• OFF: las líneas no se dividen automáticamente.

• HARD: las líneas se dividen automáticamente, y los saltos de línea se con-servan al enviar el formulario.

• SOFT: las líneas se dividen automáticamente, pero los saltos de línea no seconservan al enviar el formulario.

Si se quiere que el área de texto muestre un texto por defecto, se puede incluir entrelas etiquetas de inicio y fin. El siguiente ejemplo muestra dos áreas de texto de distintotamaño, una de ellas con un texto por defecto. En la Figura 4.7 se puede ver estapágina visualizada en un navegador. Se pueden observar las barras de desplazamientovertical y horizontal.

<HTML><BODY><FORM>Área 1:<TEXTAREA ROWS="2" COLS="40">Texto por defecto</TEXTAREA><BR>Área 2:<TEXTAREA ROWS="4" COLS="20"></TEXTAREA></FORM></BODY></HTML>

Por otro lado, y a modo de breve resumen, en un formulario de una página webse pueden emplear los siguiente controles:

<input type="...">: crea distintos tipos de controles en función del valor delatributo TYPE:

• text, crea un cuadro de texto de una sola línea.

Page 106: Programacion Internet

4.5. JavaScript 83

Figura 4.7: Áreas de texto de distinto tamaño

• hidden, crea un campo oculto en el formulario.

• password, crea un cuadro de texto velado, donde lo que escribe el usuarioqueda oculto.

• radio, crea un botón de tipo radio (campo excluyente).

• checkbox, crea un botón de comprobación (campo de verificación).

• button, crea un botón sin una acción específica.

• submit, crea un botón que envía el formulario al ser pulsado.

• reset, crea un botón que borra el formulario al ser pulsado.

<select> ... </select>: crea una lista desplegable o multilínea.

<textarea> ... </textarea>: crea un control de texto multilínea.

4.5. JavaScript

4.5.1. Explicación 30

(Pregunta 15, página 13)JavaScript es un lenguaje basado en objetos, pero no es un lenguaje orientado a

objetos “puro”, ya que carece de conceptos clave en la orientación a objetos como sonel concepto de clave, herencia u ocultación.

Page 107: Programacion Internet

84 Capítulo 4. Explicaciones

4.5.2. Explicación 31

(Pregunta 21, página 14) (Pregunta 88, página 31)En JavaScript, para mostrar un mensaje de alerta se emplea el método alert del

objeto window. Por ejemplo:window.alert("mensaje")

Realmente, el objeto window no pertenece al lenguaje JavaScript, sino al DocumentObject Model (DOM) que refleja la estructura de la página web. Otros métodos queposee el objeto window para mostrar ventanas son confirm y alert.

Por ejemplo, el siguiente código genera las ventanas que se muestran en la Figu-ra 4.8, 4.9 y 4.10 y que se han obtenido al ejecutar el código en el navegador NetscapeNavigator 4.78.

<script language="JavaScript">window.alert("Es una prueba de alert");window.confirm("Esto es una prueba de confirm");window.prompt("Esto es una prueba de prompt");

</script>

Figura 4.8: Ventana de alerta

Figura 4.9: Ventana de confirmación

Page 108: Programacion Internet

4.5. JavaScript 85

Figura 4.10: Ventana de solicitud de datos

4.5.3. Explicación 32

(Pregunta 33, página 18) (Pregunta 98, página 33)En JavaScript, las cadenas literales (constantes) se escriben como secuencias de

caracteres encerrados entre comillas dobles (" ... ") o entre comillas simples (’ ...’). Una cadena tiene que estar delimitada por comillas (dobles o simples) del mismotipo. El uso de los dos tipos de comillas tiene su sentido, ya que JavaScript se usaconjuntamente con el lenguaje HTML, y como éste usa las comillas dobles en susintaxis, tiene que haber algún método de distinguir las cadenas de JavaScript de lascadenas de HTML.

Una cadena puede contener cero o más caracteres (cualquier tipo de combinaciónde números, letras, espacios y símbolos). Además de los caracteres normales, en unacadena también se pueden incluir caracteres especiales que permiten generar saltos delínea o caracteres a partir de su código ASCII. El Cuadro 4.2 muestra los caracteresespeciales que se pueden emplear dentro de una cadena.

4.5.4. Explicación 33

(Pregunta 49, página 21)En JavaScript,para comprobar que la variable “i” es igual a “5” se escribe la

sentencia condicional if (i == 5).El operador de comparación es == y la sintaxis de la sentencia condicional simple

es if (condición).

4.5.5. Explicación 34

(Pregunta 61, página 24)El operador para concatenar cadenas en JavaScript es el símbolo de la suma (+).

Por ejemplo:

Page 109: Programacion Internet

86 Capítulo 4. Explicaciones

Carácter Significado\b Retroceso (backspace)\f Salto de página (form feed)\n Salto de línea (new line)\r Retorno de carro (carriage return)\t Tabulador\’ Apóstrofe o comilla simple\" Comilla doble\\ Barra invertida (backslash)\XXX El carácter de la codificación Latin-1 espe-

cificado por los tres dígitos octales entre 0y 377.

\xXX El carácter de la codificación Latin-1 espe-cificado por los dos dígitos hexadecimalesentre 00 y FF.

\uXXXX El carácter Unicode especificado por loscuatro dígitos hexadecimales entre 0000 yFFFF.

Cuadro 4.2: Caracteres especiales

cadena = "Hola" + " Mundo";

En cambio para concatenar cadenas en VBScript, el operador utilizado es el am-persand (&). Un ejemplo:

cadena = "Hola" & " Mundo"

Con la tecnología PHP, las cadenas se concatenan usando el operador punto (.).Por ejemplo:

$cadena = "Hola" . " Mundo";

4.5.6. Explicación 35(Pregunta 62, página 25)En JavaScript, los índices de los vectores (arrays) y de las cadenas de caracteres

comienzan por el 0, al igual que en C , C++ y Java.En VBScript, los índices también comienzan por el 0.En Java Server Pages (JSP), al estar basado en el lenguaje Java, los índices de

los vectores también comienzan por el 0.

Page 110: Programacion Internet

4.5. JavaScript 87

4.5.7. Explicación 36(Pregunta 63, página 25)Para incluir código JavaScript a partir de un fichero externo en una página web

se debe utilizar la siguiente instrucción:

<SCRIPT LANGUAGE="JavaScript" SRC="URL"></SCRIPT>

donde URL puede ser una ruta relativa o absoluta, o puede ser una ruta local o deInternet (con http://).

El atributo LANGUAGE es opcional, y en caso de omitirse, el valor por defecto quese adopta es JavaScript.

Mediante esta instrucción podemos encapsular funciones y código JavaScript paraser reutilizado de forma sencilla en varias páginas web. Además al estar el códigocentralizado en un solo fichero su mantenimiento se simplifica.

En el caso de querer incluir una declaración de estilos CSS ubicados en un ficheroexterno, debemos utilizar la etiqueta <LINK>, cuya sintaxis es:

<LINK REL="stylesheet"HREF="ruta/fichero.extension"TYPE="TEXT/CSS">

Los atributos que necesita son (entre otros):

REL: especifica la relación que existe entre el objeto enlazado y la página que loenlaza.

HREF: para indicarle la ruta y el nombre del fichero que contiene los estilosCascading Style Sheets (CSS).

TYPE: le indicamos el tipo Multipurpose Internet Mail Extensions (MIME) elobjeto que enlazamos.

4.5.8. Explicación 37(Pregunta 64, página 25)Para abrir una nueva ventana del navegador con JavaScript debemos declararla

con la siguiente instrucción:

var w = window.open("url", "nombreVentana", "parametros");

Aunque de forma simplificada sería válida la siguiente instrucción:

window.open("url", "nombreVentana");

Page 111: Programacion Internet

88 Capítulo 4. Explicaciones

En ambos casos la función open del objeto window tiene la siguiente definición:

window.open(url, nombre, parametros);

Siendo:

url: la ruta y nombre del fichero que queremos cargar en la nueva ventana delnavegador.

nombre: el nombre que le damos a la nueva ventana para poder ser referenciadadesde otros lugares del navegador con el fin de interactuar con ella.

parametros: definición de la nueva ventana, se controlan aspectos como coor-denadas, dimensiones, barras de desplazamiento, etc. Estos parámetros se es-pecifican mediante parejas de la forma nombre=valor y cuando hay varios seseparan por comas. Los parámetros principales que se pueden emplear son:

• channelmode = yes | no | 1 | 0. Indica si en la nueva entana aparece-ra la banda de canales. Por defecto esta a ’no’.

• directories = yes | no | 1 | 0. Especifica si aparecen los botones deañadir directorio. Por defecto esta a ’yes’.

• fullscreen = yes | no | 1 | 0. Indica si la ventana se mostrará a pan-talla completa ocultando todos los controles, menus, etc. del navegador. Elvalor por defecto es ’no’.

• height = numero. Con este parámetro indicamos la altura en pixels de laventana.

• left = numero. Indicamos la posición izquierda de la nueva ventana, enpixels.

• location = yes | no | 1 | 0. Especifica si se muestra o no la barra dedirección. Por defecto esta a ’yes’.

• menubar = yes | no | 1 | 0. Indicamos si vamos a mostrar o no la barrade menu. Por defecto esta a ’yes’.

• resizable = yes | no | 1 | 0. Con este parámetro le decimos si la ven-tana será modificable (redimensionable) o no. Por defecto está a ’yes’.

• scrollbars = yes | no | 1 | 0. Nos permite indicar si queremos barrasde desplazamiento horizontales o verticales. Por defecto está a ’yes’.

• status = yes | no | 1 | 0. Indica si se mostrará o no la barra de estadoen la parte inferior de la ventana. Por defecto está a ’yes’.

• titlebar = yes | no | 1 | 0. Permite mostrar u ocultar la barra detitulo de la ventana. Por defecto esta a ’yes’.

Page 112: Programacion Internet

4.6. VBScript 89

• toolbar = yes | no | 1 | 0. Indica si mostramos o no la botonera deherramientas del navegador. Por defecto esta a ’yes’.

• top = numero. Le indicamos con este parámetro la posición vertical de lanueva ventana, en pixles.

• width = numero. Ajusta el ancho de la ventana en pixels.

4.6. VBScript

4.6.1. Explicación 38

(Pregunta 24, página 15)En VBScript, se pueden emplear tanto + como & para concatenar cadenas. Sin

embargo, el mejor operador es & porque se emplea exclusivamente para concatenarcadenas, mientras que + también se emplea para sumar dos números por lo que sepueden generar situaciones ambiguas donde no se pueda determinar que operación seestá realizando.

El subtipo de un operando determina el comportamiento del operador +:

Si los dos operandos son numéricos, se realiza la suma.

Si los dos operandos son cadenas, se realiza la concatenación.

Si uno de los operandos es numérico y el otro es una cadena, se realiza la suma.

Por ejemplo, 1 + "2" o "1" + 2 devuelve 3, mientras que "1" + "2" devuelve12.

4.6.2. Explicación 39

(Pregunta 67, página 25)En VBScript no es necesario declarar las variables que se usan, a no ser que al

principio del programa o script se incluya la declaración Option Explicit.En ese caso todas las variables se deben declarar antes de ser usadas por primera

vez. Para declarar una variable, se debe utilizar la palabra reservada Dim. Por ejemplo:

Dim sMiVariable

Las variables que se utilicen en todo caso, se pueden declarar en cualquier parte delcódigo y su ámbito corresponde al lugar donde se hayan declarado. Además, tampocoes necesario indicar el tipo de las variables. De hecho es posible cambiar el tipo deuna variable en tiempo de ejecución sin necesidad de declararla de nuevo.

Page 113: Programacion Internet

90 Capítulo 4. Explicaciones

4.7. CGI

4.7.1. Explicación 40(Pregunta 12, página 13) (Pregunta 90, página 31)Todas las afirmaciones son falsas.Un programa CGI puede recibir información desde un servidor web de cuatro

formas distintas:

A través de la línea de comandos (command line).

A través de la URL (QUERY_STRING).

A través de la entrada estándar (stdin).

A través de la información de ruta (PATH_INFO).

Un programa CGI se puede programar con un lenguaje compilado (C , C++,Pascal, etc.) o con un lenguaje interpretado (Perl, shell de Unix, etc.).

Finalmente, la tecnología CGI no mantiene automáticamente el estado (sesión)entre una conexión y otra. El programador tiene que desarrollar sus propios métodos(empleo de cookies, identificador de la sesión en la URL, etc.) para mantener la sesiónentre distintas conexiones.

4.7.2. Explicación 41(Pregunta 23, página 15)Existen dos métodos para obtener la información que un cliente web envía con

una URL al servidor web:

Mediante la variable de entorno QUERY_STRING: a través de esta variable sereciben los datos que se añaden al final de la URL, separados del nombre delprograma CGI mediante un signo de interrogación (?). También se emplea estavariable cuando se envía un formulario con el método GET.

Mediante la variable de entorno PATH_INFO: a través de esta variable se recibenlos datos que se añaden al final de la URL, separados del nombre del programaCGI mediante una barra inclinada (/).

4.7.3. Explicación 42(Pregunta 40, página 19)Cuando un cliente web envía la información de un formulario al servidor, el nave-

gador codifica automáticamente la entrada del usuario. Los datos introducidos en unformulario se envían al programa CGI con el siguiente formato:

Page 114: Programacion Internet

4.7. CGI 91

control1=valor1&control2=valor2&...&controln=valorn

Por tanto,las distintas parejas campo=valor se separan por &.El signo “+” se emplea para sustituir el espacio en blanco en la entrada del usuario,

mientras que el signo “ %” se emplea para indicar la codificación en hexadecimal deun carácter especial. Por ejemplo, si en un formulario existe un cuadro de texto cuyonombre es nomusuario y el usuario escribe Sergio Luján Mora, el navegador envía lacadena:

nombre=Sergio+Luj%E1n+Mora

donde los espacios en blanco y los caracteres acentuados aparecen codificados.

4.7.4. Explicación 43(Pregunta 65, página 25)Un programa CGI puede obtener la información que un cliente web le envía de

cuatro formas diferentes:

Por medio de la línea de comandos, usando una petición de consulta del tipoISINDEX.

A través de la URL, accediendo a QUERY_STRING, una variable de entorno queel servidor web instancia en la transferencia e invocación del CGI. Este es elsistema usado cuando el cliente envía los datos por un formulario con el métodoGET.

Obteniendo los datos por la entrada estándar (stdin). Este es el caso cuandoel cliente transmite la información por medio de un formulario con el métodoPOST.

Utilizando la información de ruta del script, ésta se puede obtener accediendoa la variable de entorno PATH_INFO.

Las variables de entorno REQUEST, CONTENT y QUERY no existen en la plataformaCGI y por tanto no son métodos válidos para acceder a la información que envía elcliente. La plataforma de comunicación CGI ofrece al programador un conjunto devariables de entorno con el fin de facilitar el acceso a información útil que el clienteenvía o que se genere en la transferencia (ya sea la petición del cliente o la respuestadel servidor). Algunas de estas variables son:

ALL_HTTP: Obtiene el valor de todas las cabeceras enviadas por el cliente.

ALL_RAW: Obtiene todas las cabeceras en formato crudo tal cual las envía elcliente.

Page 115: Programacion Internet

92 Capítulo 4. Explicaciones

APPL_PHYSICAL_PATH: Da acceso al directorio físico del ’root’ del entorno deaplicación del sitio web.

AUTH_PASSWORD: Permite acceder al valor de la contraseña aportada por el usua-rio en el dialogo de autentificación (solo si el método de autentificación es elbásico).

AUTH_TYPE: Obtiene el método de autentificación que el servidor utiliza cuandose intenta acceder a un recurso protegido.

AUTH_USER: Nombre del usuario autentificado en el acceso al servidor.

CONTENT_LENGTH: Número de bytes enviados con la petición a la entrada están-dar del programa CGI (enviados desde el cliente con el método POST).

CONTENT_TYPE: Tipo MIME de los datos enviados por el cliente mediante elmétodo POST.

GATEWAY_INTERFACE: Nombre y versión de la plataforma CGI que usa el servi-dor. Formato: CGI/Versión.

HEADER_<HeaderName>: Obtiene el valor almacenado en la cabecera de nombre<HeaderName>. Es util para obtener cabeceras personalizadas del cliente.

HTTP_<HeaderName>: Obtiene el valor almacenado en la cabecera de nombre<HeaderName>. Es util para obtener cabeceras personalizadas del cliente. Sediferencia del anterior en la forma de tratar los nombres de la cabecera.

HTTP_ACCEPT: Tipos de datos que acepta el cliente. Formato: Lista de paresTipo/Subtipo.

HTTP_REFERER: Contiene la dirección desde donde el cliente ha accedido al ser-vidor.

HTTP_USER_AGENT: Nombre y versión del software que utiliza el cliente.

HTTPS: Devuelve ’ON’ si la petición vino de un canal seguro (por ejemplo SSL),devuelve ’OFF’ en caso contrario.

HTTPS_KEYSIZE: Número de bits de la clave de conexión SSL.

HTTPS_SECRETKEYSIZE: Número de bits del certificado privado del servidor enunas conexión segura.

HTTPS_SERVER_ISSUER: Proveedor del certificado seguro.

HTTPS_SERVER_SUBJECT: Sujeto del cerfiticado seguro.

Page 116: Programacion Internet

4.8. SSI 93

LOCAL_ADDR: Retorna la dirección del servidor desde donde ha venido la res-puesta.

LOGON_USER: Obtiene el nombre de la cuenta que se ha conectado desde la web.

PATH_INFO: Ruta del programa CGI invocado (porción de la URL a partir delnombre de servidor hasta el comienzo de los parámetros).

PATH_TRANSLATED: La ruta física del CGI invocado.

QUERY_STRING: Datos de la consulta enviada por el cliente con el método GET(porción de la URL a partir del nombre del script, a partir de la ’?’).

REMOTE_ADDR: Dirección IP del cliente que ha efectuado la petición.

REMOTE_HOST: Nombre de dominio del cliente (si es posible resolverla).

REMOTE_PORT: El número del puerto de la conexión del cliente.

REMOTE_USER: Nombre del usuario remoto que ha efectuado la petición.

REQUEST_METHOD: Método utilizado en la petición. Puede tomar los valores: GET,POST, HEAD, etc.

SCRIPT_NAME: Ruta virtual del programa CGI que se ha invocado.

SERVER_NAME: Nombre del servidor (Nombre de dominio o si no lo posee, direc-ción IP).

SERVER_PORT: Número de puerto donde el servidor ha recibido la petición HTTP.

SERVER_PORT_SECURE: Obtiene un 1 si el puerto es un puerto seguro, 0 en otrocaso.

SERVER_PROTOCOL: Nombre y versión del protocolo que usa el servidor. Formato:Protocolo/Versión.

SERVER_SOFTWARE: Nombre y versión del software del servicio web del servidor.Formato: Nombre/Versión.

4.8. SSI

4.8.1. Explicación 44(Pregunta 17, página 13)En SSI, para insertar en una página la fecha de la última modificación de un

archivo se puede emplear:

Page 117: Programacion Internet

94 Capítulo 4. Explicaciones

<!-- #flastmod file="archivo" -->y<!-- #flastmod virtual="archivo" -->

Los atributos virtual y file indican el tipo de ruta de acceso que se empleapara localizar el archivo. El atributo virtual permite indicar una ruta de acceso queempieza en un directorio virtual. El atributo file indica una ruta de acceso relativa;las rutas relativas empiezan en el directorio que contiene el archivo que posee elcomando SSI.

4.8.2. Explicación 45

(Pregunta 44, página 20) (Pregunta 100, página 33)En SSI, para insertar el valor de una variable de entorno en una página se emplea:

<!-- #echo var="variable" -->

Algunos ejemplos del comando #echo (en cursiva aparece el comando SSI y acontinuación el resultado que produce):

La fecha y hora de hoy es <!-- #echo var="DATE_LOCAL" -->La fecha y hora de hoy es Thursday, 23-Aug-2001 12:57:24 EDT

Has llegado aquí desde la página <!-- #echo var="HTTP_REFERER" -->Has llegado aquí desde la página http://www.ua.es/index.html

La hora en el meridiano de Greenwich es <!-- #echo var="DATE_GMT"-->La hora en el meridiano de Greenwich es Thursday, 23-Aug-2001 16:57:24GMT

Tu IP es <!-- #echo var="REMOTE_ADDR" -->Tu IP es 193.145.234.59

El nombre de esta página es <!-- #echo var="DOCUMENT_NAME" -->El nombre de esta página es ssi-prueba.shtml

Tu navegador y sistema operativo es <!-- #echo var="HTTP_USER_AGENT"-->Tu navegador y sistema operativo es Mozilla/4.78 [en] (Windows NT 5.0;U)

Por último, los comandos #print y #getenv no existen en SSI.

Page 118: Programacion Internet

4.8. SSI 95

4.8.3. Explicación 46

(Pregunta 66, página 25) (Pregunta 81, página 29)Con SSI, para insertar la información del tamaño de un fichero en una página

web se utiliza:

<!-- #fsize parametro="valor" -->

donde parametro puede tomar los valores file o virtual y valor contendrála ruta y el nombre del archivo. Esta instrucción mostrará el tamaño del fichero enKilobytes o en la unidad que se haya especificado en la configuración de SSI.

La diferencia que existe al usar file o virtual radica en que file se usa paraindicar rutas relativas a la carpeta actual donde está ubicado el archivo que contienela instrucción, y virtual se usa para especificar rutas completas a partir del directorioprincipal (root) del sitio web.

En cuanto al resto de directivas:

La directiva #size no existe en SSI.

La directiva #exec se utiliza para invocar la ejecución de programas o comandosen el sistema operativo del servidor e insertar el resultado en la respuesta alcliente. Su sintaxis es:

<!-- #exec parametro="valor" -->

donde parametro es el tipo de programa que se desea invocar: cgi, cmd, exey script (no acepta file como atributo). Y el valor se refiere a la ruta alprograma o comando a ejecutar.

La directiva #include es utilizada para insertar el contenido de otros ficherosen la página HTML del cliente. Su forma es:

<!-- #include parametro="valor" -->

donde parametro toma los valores file para rutas relativas a la carpeta actual yel valor virtual para especificar rutas absolutas a partir del directorio principal(root) del sitio web. El valor el atributo se refiere a la ruta y nombre de ficheroque se desea volcar en la página HTML.

Page 119: Programacion Internet

96 Capítulo 4. Explicaciones

4.9. ASP

4.9.1. Explicación 47(Pregunta 3, página 11) (Pregunta 92, página 31)En una página ASP, para recuperar los valores de las variables de la cadena de

consulta HTTP (en la URL) se emplea la colección QueryString del objeto Request.La cadena de consulta HTTP se especifica mediante los valores que aparecen a

continuación del signo de interrogación (?). Existen varias situaciones distintas en lasque pueden haber datos en una cadena de consulta. Por ejemplo:

En un enlace:<A HREF="cliente.asp?id=123">José Pérez Pérez</A>genera una variable llamada id con el valor 123.

En un formulario:<FORM ACTION="familia.asp?id=123&orden=asc">genera dos variables, una llamada id con el valor 123 y otra llamada orden conel valor asc.

Al enviar un formulario mediante el método GET.

Cuando un usuario escribe una consulta directamente en la barra de direcciónde un navegador de Internet.

Además de QueryString, el objeto Request también posee otras colecciones quepermiten acceder al resto de datos que transmite el navegador al servidor web duranteuna petición HTTP:

Form: los valores de los controles de un formulario enviados en el cuerpo de unapetición HTTP mediante el método POST.

Cookies: los valores de las cookies enviadas junto con una petición HTTP.

ClientCertificate: los valores de un certificado de seguridad X.509 que elnavegador envía al servidor en una petición HTTP.

ServerVariables: las variables de entorno del servidor.

Se puede acceder directamente a todas las variables si se emplea Request sinindicar el nombre de la colección. En tal caso, el servidor web busca en las coleccionesdel objeto Request en el siguiente orden:

1. QueryString.

2. Form.

Page 120: Programacion Internet

4.9. ASP 97

3. Cookies.

4. ClientCertificate.

5. ServerVariables.

Si existe una variable con el mismo nombre en más de una colección, el objetoRequest devuelve la primera instancia que encuentra. Para evitar ambigüedades yerrores, se aconseja siempre emplear el nombre de la colección.

4.9.2. Explicación 48(Pregunta 7, página 12) (Pregunta 97, página 32)El código de la página ASP no se ejecuta, ya que el servidor web no procesa

la página. La razón es que el protocolo de comunicación empleado es file, lo quesignifica que la página se está abriendo localmente, sin pasar por el servidor web. Lapágina nunca va a ser ejecutada, independientemente de que el servidor web esté ono esté iniciado.

Si no se puede ejecutar una página ASP en un equipo, se tienen que realizar lassiguientes comprobaciones:

Comprobar que el servidor web (Microsoft Personal Web Server o Microsoft Inter-net Information Server) está correctamente instalado, bien configurado e iniciado.

Comprobar que la URL está correctamente escrita. Tiene que aparecer una delas siguientes dos posibilidades:

• http://localhost/ruta/pagina.asp

• http://nombreEquipo/ruta/pagina.asp

Comprobar que el archivo correspondiente a la página se encuentra en el lugarindicado por la URL.

Comprobar que la página ASP no está abierta por otro programa. A veces,un programa abre un archivo en modo exclusivo e impide que otros programaspuedan acceder a él.

4.9.3. Explicación 49(Pregunta 13, página 13)La propiedad Session.Timeout configura el tiempo de vida de una sesión en ASP.La propiedad Timeout del objeto Session, un objeto integrado de ASP, especifica

el periodo de tiempo de espera, en minutos, asignado al objeto Session. La sesióntermina si el usuario no solicita o actualiza una página durante el tiempo de espera

Page 121: Programacion Internet

98 Capítulo 4. Explicaciones

establecido en esta propiedad. Al terminarse una sesión, se destruyen todos los objetosalmacenados en el objeto Session y se liberan sus recursos.

El tiempo de espera predeterminado de una sesión es de 20 minutos. Este tiempose puede modificar a través de la herramienta de administración de Microsoft InternetInformation Server, tal como se aprecia en la Figura 4.11.

Figura 4.11: Configuración de parámetros de ASP en Microsoft Internet InformationServer

Por último, también se puede terminar una sesión en cualquier momento con elmétodo Abandon del objeto Session.

4.9.4. Explicación 50

(Pregunta 16, página 13)Desde una página ASP, para enviar información al cliente se emplea el objeto

Response.

Page 122: Programacion Internet

4.9. ASP 99

Entre otras propiedades y métodos, este objeto posee el método BinaryWritepara escribir datos binarios, el método Write para escribir una cadena de texto enel resultado HTTP que se envía al cliente y el método Redirect para redirigir alcliente a una URL nueva.

4.9.5. Explicación 51

(Pregunta 18, página 14) (Pregunta 70, página 26)El fichero Global.asa no es un fichero obligatorio en cualquier aplicación web

realizada con ASP.Global.asa es un archivo opcional en el que se definen secuencias de comandos

de eventos y que permite declarar objetos con alcance de sesión o de aplicación. En élse declaran los eventos de inicio y finalización de los objetos Application y Session.La estructura típica de este fichero es:

<SCRIPT LANGUAGE="Lenguaje" RUNAT="Server">Sub Application_OnStart. . .End Sub

Sub Application_OnEnd. . .End Sub

Sub Session_OnStart. . .End Sub

Sub Session_OnEnd. . .End Sub</SCRIPT>

donde Lenguaje es cualquier lenguaje de programación (por ejemplo, VBScript oJavaScript) del que se disponga el correspondiente intérprete compatible con ASP.

El fichero Global.asa no es accesible desde el cliente. Si se solicita, el servidorweb devuelve una página de error como la mostrada en la Figura 4.12.

Por último, el código incluido en el fichero Global.asa no puede escribir datos enla página devuelta al cliente.

4.9.6. Explicación 52

(Pregunta 22, página 14)

Page 123: Programacion Internet

100 Capítulo 4. Explicaciones

Figura 4.12: Página de error al solicitar el fichero Global.asa

Page 124: Programacion Internet

4.9. ASP 101

Desde una página ASP sólo se puede acceder al sistema de archivos existente enel propio servidor web.

El sistema de archivos en el cliente es inaccesible desde una página ASP. Si fueseaccesible, existiría un potencial agujero de seguridad, ya que cualquier servidor webal que se conectase un usuario podría acceder a sus archivos.

Una página ASP sólo puede acceder a un archivo que existe en el sistema dearchivos del cliente si el usuario explícitamente envía el fichero al servidor web através de un control de tipo <input type="file"> en un formulario de una páginaweb.

4.9.7. Explicación 53

(Pregunta 25, página 15)En la instalación por defecto (estándar) de ASP, se puede emplear como lenguaje

de programación tanto VBScript como JavaScript, ya que dispone de los intérpretesde ambos lenguajes.

El lenguaje principal de ASP es el lenguaje que se utiliza para procesar las instruc-ciones que se encuentren entre los delimitadores < % y %>. De forma predeterminada,el lenguaje principal de ASP es VBScript. El valor por defecto del lenguaje se puedeestablecer mediante la herramienta de administración de Microsoft Internet InformationServer. En la Figura 4.11 se pude ver la ventana que permite definir el lenguaje deASP predeterminado. También se puede emplear como lenguaje principal cualquierlenguaje de secuencia de comandos para el que se disponga de un intérprete.

En una página ASP se pueden escribir secuencias de comandos en distintos len-guajes de programación. Para ello se tiene que emplear la sintaxis:<SCRIPT LANGUAGE="Lenguaje" RUNAT="SERVER"> ... </SCRIPT>donde Lenguaje es el lenguaje de programación que se quiere emplear. El atributoRUNAT indica al servidor web que tiene que procesar el código. Sin este atributo, lassecuencias de comando se enviarían al cliente y serían procesadas por su navegador.

Para establecer el lenguaje principal en una única página ASP, se tiene que añadirla directiva < %@ LANGUAGE="Lenguaje" %> al principio de la página, donde Lenguajees el lenguaje principal de secuencia de comandos que se desea establecer en esa páginaconcreta. Este valor sustituye al valor por defecto que se haya configurado para todaslas páginas desde la herramienta de administración del servidor web.

4.9.8. Explicación 54

(Pregunta 31, página 17) (Pregunta 83, página 30)El objeto Application permite emplear variables globales a todos los usuarios de

una aplicación web. Por ello, se suele utilizar este objeto para compartir informaciónentre todos los usuarios de una aplicación (en ASP, una aplicación es el conjun-to de ficheros .asp de un directorio virtual y sus subdirectorios). Como al objeto

Page 125: Programacion Internet

102 Capítulo 4. Explicaciones

Application pueden acceder varios usuarios a la vez, los métodos Lock y Unlock deeste objeto permiten garantizar un acceso exclusivo al objeto. El método Lock impideque otros clientes modifiquen las variables almacenadas en el objeto Application.

El objeto Session se suele emplear para almacenar información necesaria para unasesión de usuario determinada. Este objeto persiste (no se destruye) cuando el usuariopasa de una página a otra de la misma aplicación. Este objeto se crea automáticamentela primera vez que un usuario accede a una página de una aplicación y permanece enmemoria hasta que se abandona la sesión (Session.Abandon) o hasta que el servidorweb la destruye porque ha caducado (se ha superado el tiempo máximo de vida de lasesión establecido en Session.Timeout).

Por último, el objeto Server se emplea para acceder a ciertos métodos y propie-dades relacionados con el servidor web.

En el Cuadro 4.3 se resumen las colecciones, eventos, métodos y propiedades delos principales objetos de ASP.

Objeto Colecciones Eventos Métodos PropiedadesApplication Contents

StaticObjectsApplication_OnStartApplication_OnEnd

LockUnLock

Server CreateObjectHTMLEncodeMapPathURLEncode

ScriptTimeout

Session ContentsStaticObjects

Session_OnStartSession_OnEnd

Abandon CodePageLCIDSessionIdTimeOut

Cuadro 4.3: Colecciones, eventos, métodos y propiedades de los objetos Application,Server y Session

Preguntas relacionadas: 50Explicaciones relacionadas: 57

4.9.9. Explicación 55

(Pregunta 37, página 18) (Pregunta 76, página 29)ASP son las siglas de Active Server Pages. ASP es una tecnología de secuencias

de comandos del servidor web que permite crear páginas web dinámicas en el servidor.ASP es una tecnología propietaria de Microsoft. Cuando un servidor web recibeuna petición de una página ASP, procesa las secuencias de comando del servidorque contiene la página para generar el documento que se envía al cliente. Una páginaASP puede contener HTML y secuencias de comandos del servidor. Las páginasASP suelen tener la extensión .asp.

4.9.10. Explicación 56

(Pregunta 47, página 20)

Page 126: Programacion Internet

4.9. ASP 103

Para finalizar la ejecución de una página ASP se emplea el método Response.-End. Al llamar a este método, se envía el resultado que se haya producido hasta elmomento y se detiene el procesamiento del resto de la página.

El método Response.Clear se emplea para borrar cualquier resultado HTMLalmacenado en el búfer de salida (sólo se borra el cuerpo de la respuesta y no cual-quier encabezado que se haya emitido con el método Response.AddHeader). Si elbúfer no está activado (por ejemplo, porque se ha desactivado con la instrucciónResponse.Buffer) se producirá un error en tiempo de ejecución.

Por último, Response.Stop no existe en ASP.

4.9.11. Explicación 57(Pregunta 50, página 21)En ASP, cada usuario tiene su objeto Session, pero todos los usuarios comparten

el mismo objeto Application.El servidor web crea automáticamente un objeto Session cuando un usuario que

aún no tiene una sesión solicita una página de una aplicación. Del mismo modo,el servidor web destruye automáticamente el objeto Session de un usuario cuandocaduca o se abandona la sesión.

En ASP, se crea un objeto Application por cada aplicación que posea el servidorweb. Una aplicación se define como el conjunto de archivos .asp de un directoriovirtual y sus subdirectorios.

Preguntas relacionadas: 31Explicaciones relacionadas: 54

4.9.12. Explicación 58(Pregunta 68, página 26)La instrucción < % Response.Write Time %> mostrará en el cliente la hora del

servidor donde la página ASP esté alojada, porque el código lo interpreta el servidorantes de elaborar una respuesta en formato ASCII o HTML y enviarla al cliente.

Ni <@ RUNAT="Server|Client" @> ni Request.Time existen, así que esas respues-tas son falsas.

Respecto a RUNAT, es un atributo de la etiqueta <SCRIPT>. Así, en el caso deescribir:

<SCRIPT LANGUAJE="VBScript" RUNAT="Client">Response.Write Time

</SCRIPT>

el código no se interpretaría en el servidor, sino que se transmitiría al servidor, yentonces se generaría un error de cliente puesto que el navegador o bien no entiendeVBScript (sólo Microsoft Internet Explorer es capaz de interpretar VBScript) o bien

Page 127: Programacion Internet

104 Capítulo 4. Explicaciones

no tiene acceso al objeto Response que no está en el modelo de objetos de documentode las páginas web, puesto que este objeto pertenece al conjunto de objetos accesiblesdesde una página ASP en el servidor.

4.9.13. Explicación 59

(Pregunta 69, página 26) (Pregunta 79, página 29)Para redirigir al usuario automáticamente a otra URL desde ASP se debe invocar

el método Redirect del objeto Response, de esta forma:

Response.Redirect URL

donde URL contiene la dirección de Internet hacia la cual el navegador del clientesera redirigido.

Las otras respuestas posibles son erróneas porque no responden a ningún métodode los objetos especificados:Session.Redirect, Request.Redirect y Server.Redirectno existen.

4.9.14. Explicación 60

(Pregunta 71, página 26) (Pregunta 87, página 30)Para acceder a las variables de entorno desde ASP se debe invocar el método

ServerVariables del objeto Request, de esta forma:

Request.ServerVariables("variableDeEntorno")

Siendo ’variableDeEntorno’ el nombre de la variable de entorno de servidor a laque se desea acceder para consultar su valor.

Las otras respuestas posibles son erróneas porque no responden a ningún métodode los objetos especificados.

Preguntas relacionadas: 65Explicaciones relacionadas: 43

4.9.15. Explicación 61

(Pregunta 72, página 26)Los datos enviados desde un formulario HTML con el método GET se pueden

recuperar desde un script ASP utilizando la función QueryString del objeto Request.El acceso a cada variable individual se puede realizar de dos formas, mediante unnúmero que representa el orden o mediante una cadena que represente el nombre dela variable. Ejemplos:

Page 128: Programacion Internet

4.10. Java 105

’ Accedemos a la primera variable de la QueryString.vMiVar = Request.QueryString(0)’ Accedemos a la variable ’pVariable’.vMivar2 = Request.QueryString("pVariable")

En cambio, los datos enviados desde un formulario HTML con el método POST sedeben recuperar con la función Form del mismo objeto Request. La forma de accedera cada dato en concreto es la misma que en el caso anterior. Ejemplos:

’ Accedemos a la segunda variable del formulario recibido’ por POSTvMiVar3 = Request.Form(1)’ Accedemos a la variable ’pVariable2’vMivar4 = Request.Form("pVariable2")

La opción Request.GetForm no existe (por lo que provocaría un error) puesto queGetForm no es un método del objeto Request.

4.10. Java

4.10.1. Explicación 62

(Pregunta 4, página 11) (Pregunta 34, página 18)Los orígenes de Java se sitúan en un proyecto iniciado por la empresa Sun Mi-

crosystems en 1991 cuyo objetivo era facilitar el desarrollo de software avanzadopara dispositivos electrónicos de consumo (relojes, calculadoras, etc.). Por tanto, elpropósito inicial no fue, ni mucho menos, el desarrollo de aplicaciones en Internet.Sin embargo, con el paso del tiempo sí que se han incluido numerosos recursos paraprogramar en red en general y en especial en Internet.

Java es un lenguaje multiplataforma, ya que al compilarse un fichero fuente en Javano se genera código máquina de una plataforma concreta, sino código (bytecodes) parauna máquina virtual (la MVJ).

Java es un lenguaje fuertemente tipado (strongly typed): cada variable, cada ex-presión, tiene un tipo que se conoce en tiempo de compilación.

Por último, en Java no hace falta liberar memoria cuando ya no se emplea (noexiste un equivalente a la sentencia free en C o delete en C++). Ello es posiblegracias a que incorpora un recolector de basura (garbage collector), que “sabe” cuandoun objeto ya no se usa y se puede liberar la memoria que ocupa.

4.10.2. Explicación 63

(Pregunta 75, página 27)

Page 129: Programacion Internet

106 Capítulo 4. Explicaciones

El lenguaje de programación Java, aún estando muy ligado al mundo de Internet,fue desarrollado por una empresa que nada tiene que ver con las entidades norma-lizadoras o recomendadoras de la red (W3C, Internet Society (ISOC), etc.). Enconcreto, Java fue creado por Sun Microsystems.

Una de las mejoras o innovaciones que se deseaba aportar con la creación deeste lenguaje era su característica de ser multiplataforma, es decir, que un mismoprograma, con el mismo código fuente pudiese funcionar en cualquier plataforma ysistema operativo que soportase una MVJ.

En la actualidad Java está soportado en múltiples plataformas (Sun Microsys-tems, Intel, IBM y Apple) y en distintos sistemas operativos, como Microsoft Win-dows, Apple MacOS, y distintas variantes de Unix (Linux, IRIX, AIX, Solaris, etc.) entreotros. Para cada una de estas plataformas y sistemas operativos se ha desarrolladouna máquina virtual o intérprete capaz de ejecutar programas Java compilados.

Otra de las características que aporta este lenguaje es que es orientado a objetos(que es distinto de basado en objetos). Todo en Java es un objeto (salvo algunaspocas excepciones, como los tipos básicos de datos). Por tanto, permite aprovecharlas características de este paradigma de programación: encapsulación, reutilización,privacidad, sobrecarga, polimorfismo, herencia, etc. Además, por esto mismo, Javaes un lenguaje fuertemente tipado que obliga al programador a declarar las variablesantes de usarlas, definir su tipo de dato (entero, booleano, etc.), jugar con conversionesde tipo, etc.

4.11. JSP

4.11.1. Explicación 64

(Pregunta 8, página 12) (Pregunta 94, página 32)La ejecución de una página JSP es un proceso compuesto de varios pasos (Figu-

ra 4.13). Al recibir una petición de una página JSP, primero se comprueba si existeel correspondiente servlet. Si no existe o si la página JSP y su correspondiente servletno están actualizados (porque el código de la página JSP ha cambiado), se interpretael JSP y se genera el código del servlet equivalente. A continuación, el código delservlet se compila y se generan los bytecodes. Se carga en la memoria del servidor losbytecodes del servlet y se ejecutan. La correspondiente respuesta se envía al cliente.

Todo este proceso se realiza la primera vez que se invoca una página JSP. Lassiguientes veces, como el servlet ya existe, únicamente se tiene que comprobar si elservlet está cargado en la memoria del servidor. Si no está, entonces se carga el servleten la memoria. A continuación se ejecuta y se envía la respuesta al cliente.

Los servidores poseen una memoria caché donde se almacenan los servlets quese ejecutan. Para gestionar esta memoria se emplean diversos algoritmos: LRU (lessrecently used), LFU (less frequently used), etc.

Page 130: Programacion Internet

4.11. JSP 107

Figura 4.13: Ciclo de vida de una página JSP y su correspondiente servlet

Page 131: Programacion Internet

108 Capítulo 4. Explicaciones

4.11.2. Explicación 65(Pregunta 11, página 12)Una expresión es una forma rápida y cómoda de emitir volcados de datos en

formato String a la página de respuesta, más concretamente al objeto Response queposteriormente sera enviado al cliente y que éste visualizará en forma de página web.Su sintaxis es:

<%= código %>

También se puede emplear la sintaxis basada en XML:

<jsp:expression>código</jsp:expression>

Las acciones en JSP son utilizadas para aportar prestaciones adicionales al JSP,como: acceso a componentes software, inclusión de contenido de ficheros, etc. Éstasúnicamente se pueden expresar en formato XML. Se trata básicamente de funcionespredefinidas que actúan sobre los objetos embebidos del sistema. Además, por mediode las directivas de definición de etiquetas nuevas, estas se invocan como si se tratasede acciones, usando la misma sintaxis. Algunos ejemplos de acciones en JSP son:

<jsp:useBean .... />, para invocar y declarar un componente software y po-der acceder a sus métodos y propiedades.

<jsp:include ... />, para incluir el contenido de ficheros externos en el JSP.

<jsp:forward ... />, para redirigir al cliente a otra URL.

El propósito de las directivas en JSP es el de poder configurar el motor JSP y elentorno de compilación y ejecución. Además, permiten definir etiquetas nuevas paraañadir funcionalidades nuevas a las aplicaciones. Su sintaxis es:

<%@ directiva atributo="valor" %>

o en formato XML:

<jsp:directive.directiva atributo="valor" />

Hay tres conjuntos de directivas:

Page, permite configurar parámetros del JSP.

Include, inserta código procedente de otra URL, en nuestro JSP.

Taglib, permite definir etiquetas personalizadas. Estas etiquetas se añaden alconjunto de acciones disponibles en el sistema y se invocan como tales.

Page 132: Programacion Internet

4.11. JSP 109

Por tanto, la respuesta “Es necesario hacer una operación de conversión (cast)cuando en una expresión se devuelvan datos que no sean de tipo String” es la afir-mación falsa y se explica completando la definición de expresión, donde añadimos que“es una forma rápida y cómoda de emitir volcados de datos en formato String a lapágina web, realizando si es necesario una conversión de tipo (cast) automática”. Esdecir, el interprete de JSP realiza automáticamente una conversión de tipo al volcarlos datos al objeto Response, evitando al programador de realizar esta tarea.

4.11.3. Explicación 66

(Pregunta 27, página 17) (Pregunta 85, página 30)Para cerrar una sesión de usuario con JSP debemos invocar el método invalidate

del objeto session como a continuación se indica:

session.invalidate();

En el caso de session.abandon, esta es la opción de cierre de una sesión enla tecnología de ASP. Cualquier otra opción es incorrecta al no existir los mé-todos en los objetos que se ofrecen como posible respuesta: server.invalidate yresponse.abandon.

No obstante, la sesión se cierra automáticamente si el usuario que visita nuestroservidor permanece un determinado tiempo sin realizar ninguna interacción con elservidor. Este periodo, llamado session timeout, tiempo de espera de la sesión, sepuede configurar desde código y desde la propia configuración del servidor web o delservidor de aplicaciones.

4.11.4. Explicación 67

(Pregunta 46, página 20)Para redirigir al usuario automáticamente a otra URL desde JSP se debe invocar

el método sendRedirect del objeto response. Por ejemplo:

response.sendRedirect(URLDestino);

El parámetro URLDestino es una cadena de caracteres que contiene la direcciónhacia donde vamos a dirigir al cliente.

Por otro lado, response.redirect es la instrucción utilizada en ASP para rediri-gir al usuario a una nueva URL (pero sin los paréntesis). Las otras respuestas posibles(session.redirect() y request.redirect()) son erróneas porque no responden aningún método de los objetos especificados.

Page 133: Programacion Internet

110 Capítulo 4. Explicaciones

4.11.5. Explicación 68(Pregunta 73, página 27)La empresa Sun Microsystems desarrolló el lenguaje Java y las tecnologías de

programación en Internet para el servidor basadas en este lenguaje, como Servlety JSP. La primera propuesta de desarrollo desde el lado del servidor fue Servlet,que básicamente consisten en programas desarrollados en Java que incluyen unasdeterminadas bibliotecas de funciones que les permiten interactuar con el servidorweb (acceso a objetos y datos de sesión, recuperación de datos de un formulario,etc). En otras palabras, son programas CGI realizados en Java con una version de laplataforma CGI mejorada.

Uno de los inconvenientes de esta tecnología consiste en que el desarrollo estáorientado al lado del servidor y es difícil integrar y mantener el código de clientegenerado, pues está embebido en las instrucciones del código de servidor, algo quedificulta el mantenimiento de la aplicación y su depuración, sobre todo en lo querespecta al código de cliente, al diseño de la web. Es decir, que las etiquetas HTMLde la página de respuesta están entremezcladas con las instrucciones del programaJava, del Servlet.

A partir de esta tecnología, se desarrolló JSP que aportó mejoras sensibles en eldesarrollo para Internet con Java. JSP tiene mejores prestaciones que Servlet, entrelas cuales cabe destacar:

Posibilidad de ampliar el conjunto de etiquetas HTML con etiquetas extendidasen XML que permiten una mejor reutilización y encapsulación del código.

Programación de servidor con tecnología de web scripting que permite mez-clar código de cliente y de servidor de forma sencilla, facilitando el desarrollo,depuración y el mantenimiento.

Además, al estar ambas tecnologías basadas en Java, otra ventaja adicional es quepueden disfrutar de todas las prestaciones del lenguaje, como la posibilidad de traba-jar con componentes software de Java, llamados JavaBeans, que permiten llamadas amétodos de objetos remotos, serialización, encapsulación de aplicaciones y reutiliza-ción de componenetes software, orientación a objetos, posibilidades multiplataforma,etc.

4.11.6. Explicación 69(Pregunta 74, página 27) (Pregunta 99, página 33)Para comentar código con la tecnología JSP existen diversas formas. Los comen-

tarios de una sola línea dentro de un scriptlet se indican con la doble barra de dividir(igual que con Java, C y C++). Por ejemplo:

// Esto es un comentario de una sola línea

Page 134: Programacion Internet

4.11. JSP 111

Podemos realizar comentarios de más de una línea, para escribir párrafos, enca-bezados de funciones o incluso para eliminar un fragmento de código. Este tipo decomentarios se indican con /* para abrir el comentario y */ para cerrarlo, igual quecon Java, C y C++. Por ejemplo:

/* Comentario demas de una líneade código */

También tenemos otra forma de comentar código, también multilínea, pero en estecaso la sintaxis es exclusiva de JSP. Usa < %– para abrir el bloque comentado y – %>para cerrarlo. Por ejemplo:

<%-- Comentario demas de una líneade código --%>

Esta última forma es la más cómoda para comentar acciones, directivas y demáselementos exclusivos de la tecnología JSP.

En el caso de trabajar con ASP, los comentarios de código de servidor se realizanutilizando la palabra reservada Rem o su abreviatura, el apóstrofe (’). En ambos casos,el comentario abarca una sola línea. Por ejemplo:

REM Comentario en Visual Basic y ASP.’ Comentario utilizando la abreviatura.

Page 135: Programacion Internet
Page 136: Programacion Internet

Bibliografía recomendada

A continuación se incluye una serie de libros recomendados agrupados en una serie decategorías: General, HTML, Diseño web, JavaScript y Programación de servidor.

General

Eduardo Parra Murga. Diccionario de Internet. Nóesis, Madrid, 1996

Andrew S. Tanenbaum. Redes de computadores. Prentice-Hall, 1997

Jesús Bobadilla Sancho. Superutilidades para Webmasters. Osborne McGraw-Hill, Madrid, 1999

H. M. Deitel, P. J. Deitel, T. R. Nieto. Internet and World Wide Web. How toprogram. Prentice Hall, New Jersey, 2000

Sergio Luján Mora. Programación en Internet: Clientes Web. Club Universita-rio, Alicante, 2001

Sergio Luján Mora. Programación de aplicaciones web: historia, principios bá-sicos y cliente web. Club Universitario, Alicante, 2002

Chris Bates. Web Programming: Building Internet Applications. John Wiley &Sons, New York, 2002

HTML

Sergio Ríos Aguilar. Lenguajes HTML, Java y CGI. El diseño de páginas Webpara Internet a su alcance. Abeto Editorial, Madrid, 1996

Ian S. Graham. HTML Sourcebook: A Complete Guide to HTML 3.2 and HTMLExtensions. John Wiley & Sons, New York, 1997

Molly Holzschlag. Special Edition Using HTML 4. Que, Macmillan ComputerPublishing, 1999

113

Page 137: Programacion Internet

114 Capítulo 4. Bibliografía recomendada

Diseño web

Sarah Horton Patrick J. Lynch. Principios de diseño básicos para la creaciónde sitios web. Ediciones G. Gili, México, 2000

Jakob Nielsen. Usabilidad: diseño de sitios Web. Prentice Hall, Madrid, 2000

Steve Krug. No me hagas pensar: una aproximación a la usabilidad en la Web.Prentice Hall, Madrid, 2001

JavaScript

Danny Goodman. Programación en JavaScript. Vía@Internet, Anaya Multime-dia, Madrid, 1996

Oscar González Moreno. Programación en JavaScript. Guías Prácticas, AnayaMultimedia, Madrid, 1998

José Manuel Alarcón. Programación en JavaScript (actualizada hasta JavaS-cript 1.3 y JScript 5). Guías Prácticas, Anaya Multimedia, Madrid, 2000

Programación de servidor

Marty Hall. Core Servlets and JavaServer Pages. Prentice Hall PTR, 2000

Sergio Luján Mora. Programación de servidores web con CGI, SSI e IDC. ClubUniversitario, Alicante, 2001

Jorge Serrano Pérez. Programación con ASP 3. Anaya Multimedia, Madrid,2001

Damon Hougland, Aaron Tavistock. Core JSP. Prentice Hall PTR, 2001

Page 138: Programacion Internet

Índice alfabético

Active Server Pages, véase ASPAdvanced Research Projects Agency,

véase ARPAAIX, 106allaire, 69, 71American Standard Code for Informa-

tion Interchange, véase ASCIIAPI, xi, 70Apple, 64, 106Apple Computer Corporation, 64Apple Macintosh, xvii, 65, 75Apple MacOS, 64, 106Application Program Interface, véase

APIARPA, xi, xii, 65, 66ASCII, xi, 75, 85, 103ASP, xi, 69, 96–99, 101–104, 109, 111

BBS, xi, 66, 67Bit-map, véase BMPBMP, xii, 75Bulletin Board System, véase BBS

C, xii, 69, 86, 90, 110, 111C++, 69, 86, 90, 105, 110, 111Caché Server Pages, véase CSPCascading Style Sheets, véase CSSCERN, xii, 63CFML, xii, 70, 71CGI, xii, 69, 90–93, 110ColdFusion, xii, 69–71ColdFusion Markup Language, véase CFMLCommon Gateway Interface, véase CGI

Compuserve, xiii, xvConseil Européenne pour le Recherche

Nucléaire, véase CERNCSP, xiiCSS, xii, 87

DARPA, véase ARPADatapoint Corporation, 66DEC, 66Defense Advanced Research Projects Agency,

véase ARPADHTML, xiiiDNS, xiii, 63Document Object Model, véase DOMDOM, xiii, 84Domain Name Service, véase DNSDomain Name System, véase DNSDynamic HTML, véase DHTML

Extensible HyperText Markup Langua-ge, véase XHTML

Extensible Markup Language, véase XML

GIF, xiii, 75GNU, xiii, 64GNU General Public License, véase GPLGNU is Not Unix, véase GNUGPL, xiiiGraphics Interchange Format, véase GIF

Hojas de estilo en cascada, véase CSSHTML, xiv, 63, 65, 69, 71–74, 76, 77,

79–81, 85, 95, 102–105, 110HTML dinámico, véase DHTML

115

Page 139: Programacion Internet

116 Índice alfabético

HTTP, xiv, 63, 65, 68, 93, 96, 99HyperText Markup Language, véase HTMLHyperText Transfer Protocol, véase HTTP

IAB, xivIANA, xivIBM, 106IDC, xivIETF, xivIntel, 64, 66, 106International Organization for Standards,

véase ISOInternet Architecture Board, véase IABInternet Assigned Numbers Authority,

véase IANAInternet Database Connector, véase IDCInternet Engineering Task Force, véase

IETFInternet Protocol, véase IPInternet Society, véase ISOCIntersystems, xiiIP, xiv, 63, 68, 93IRIX, 106ISO, xvISOC, xv, 106

Java, xv, xvi, 61, 70, 86, 105, 106, 110,111

Java Server Pages, véase JSPJava Virtual Machine, véase MVJJavaBeans, 110JavaScript, 61, 71, 78, 83–87, 99, 101Joint Photographic Experts Group, véa-

se JPEGJPEG, xvJPG, véase JPEG, 75JScript, xiJSP, xv, 86, 106, 108–111

Lempel Zev Welch, véase LZWless frequently used, véase LFUless recently used, véase LRULFU, 106

Linux, 64, 106LRU, 106LZW, xv

Máquina Virtual Java, véase MVJMacromedia, 69, 71Massachusetts Institute of Technology,

véase MITMicrosoft, xi, xiv, xv, 69, 102Microsoft Internet Explorer, xvii, 103Microsoft Internet Information Server,

97, 98, 101Microsoft Paint, 7Microsoft Personal Web Server, 97Microsoft Windows, xii, xvii, 64, 65,

75, 106Microsoft Windows XP, 63MIME, xv, 87, 92MIT, xvi, 64, 65Mosaic, 65Mosaic Communications Corporation,

64, 65Mosaic for X, 64, 65Motorola, 64Moving Picture Experts Group, véase

MPEGMPEG, xviMPG, véase MPEG, 75Multipurpose Internet Mail Extensions,

véase MIMEMVJ, 70, 71, 105, 106

National Center for Supercomputing Ap-plications, véase NCSA

NCSA, xvi, 64, 65NCSA Mosaic, xviNetscape Communications Corporation,

64, 65Netscape Navigator, xvii, 7, 84NeXT Corporation, 64

ODBC, xviOpen DataBase Connectivity, véase ODBC

Page 140: Programacion Internet

Índice alfabético 117

Open System Interconnection, véase OSIOpera, 7OSI, xvi, 68

Pascal, 90Perl, xii, 69, 90PHP, 86Pixar, 64plug-in, xviiiPNG, xvii, 75Portable Network Graphics, véase PNG

Red de Telefonía Básica, véase RTBRed Green Blue, véase RGBRequest for Comments, véase RFCRFC, xviiRGB, xviiRTB, xvii, 66

Server Side Include, véase SSIServlet, 110SGML, xviiSolaris, 106SSI, xvii, 71, 72, 93–95Standard Generalized Markup Langua-

ge, véase SGMLSun Microsystems, xv, 64, 105, 106,

110

Tagged Image File Format, véase TIFFTCP/IP, xvii, 65, 67, 68, 71TIFF, xvii, 75Transmeta Corporation, 64Transmission Control Protocol/Inter-

net Protocol, véase TCP/IP

Unisys Corporation, xvUniversal Resource Locator, véase URLUnix, 64, 65, 90, 106URL, xviii, 64, 65, 77, 78, 90, 91, 93,

96, 97, 99, 104, 108, 109

VBScript, xi, 61, 86, 89, 99, 101, 103

Virtual Reality Modeling Language, véa-se VRML

VRML, xviii, 72

W3C, xviii, 64, 68, 73, 106Web, véase WWWWorld Wide Web, véase WWWWorld Wide Web Consortium, véase W3CWWW, xviii, 65

Xerox Corporation, 66XHTML, xviii, 72XML, xviii, 72, 108, 110

Page 141: Programacion Internet