Temas Específicos para La Preparación de La Oposición Al Cuerpo Superior de Sistemas y Tecnologías de La Información de La Administración Del Estado
Temas Específicos para La Preparación de La Oposición Al Cuerpo Superior de Sistemas y Tecnologías de La Información de La Administración Del Estado
Actualización 2017
1
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
ÍNDICE
ÍNDICE
4 CONCLUSIONES ................................................................... 63
3
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
El servidor web es la aplicación responsable de esperar conexiones de los navegadores web, aceptar
y procesar sus peticiones, y devolver documentos (por ejemplo, una página web HTML) mediante
respuestas.
Por su parte, el navegador web es la aplicación responsable de establecer conexiones con los
servidores web, solicitar documentos mediante peticiones, y procesar y presentar los documentos
recibidos en las respuestas.
El protocolo de comunicaciones mediante el que dialogan los navegadores y servidores web es HTTP
(Hypertext Transfer Protocol) que, junto con HTML, es la otra piedra angular de la Web.
Dado que existe una gran diversidad de documentos, es necesario establecer un mecanismo que
permita identificar unívocamente cada documento y localizarlo. Esto se consigo por medio de URLs
(Uniform Resource Locator). Una URL hace referencia al identificador único de cada recurso
disponible en Internet.
Por su importancia dentro de la web, las siguientes secciones describen brevemente HTTP y URL.
1Se entiende recurso por cualquier trozo de información que puede ser identificado mediante una
URL (fichero HTML, imagen, sonido, etc.)
4
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Tanto el mensaje de petición como de respuesta siguen el mismo formato: línea inicial, cero o más
encabezados, una línea en blanco y opcionalmente, el cuerpo del mensaje (en la respuesta será el
recurso solicitado). La línea inicial para una petición consistirá:
- Comando que indica la acción que desea que se efectúe sobre el recurso identificado: GET,
PUT, POST, OPTIONS, TRACE, DELETE,...
- El identificador del recurso (URI).
- La versión del protocolo HTTP en uso.
Para una respuesta será:
- Versión de HTTP.
- Código de estado (p.e 200 OK, 404 Not Found, etc.).
- Frase explicativa.
En 1992 se creó, basado en HTTP, el protocolo HTTPS (Hypertext Transfer Protocol Secure) para
ofrecer un medio más apropiado de transmisión para información sensible en el protocolo HTTP.
HTTPS utiliza cifrado basado en SSL/TLS para crear un canal cifrado entre el servidor y el cliente.
La versión HTTP/1.1 surgió en 1999 para abordar nuevas necesidades y solucionar algunos
problemas de HTTP/1.0. La principal mejora de esta versión es que se permite que en una conexión
se realicen varias transacciones solicitud/respuesta, lo que puede reducir el tiempo de respuesta
considerablemente.
Otras mejoras incluyen el ahorro de ancho de banda a través del uso de caché, la posibilidad de
incluir servidores virtuales basados en nombres para un uso eficiente de direcciones IP y la
posibilidad de permitir que una respuesta se envíe aun cuando no se conoce su longitud completa
(chunked response).
En mayo de 2015 se publicó el RFC 7540 con la especificación de HTTP/2, la cual pretende ofrecer
mayor velocidad, reducir el uso de recursos en la red y el servidor, mejorar el rendimiento de la red y
comprensión de cabeceras.
Una de las características más importantes de esta versión es que es un protocolo binario en lugar de
texto, permitiendo más seguridad y menos errores. Además, para la compresión de cabeceras se ha
empleado el algoritmo HPACK, más seguro que GZIP (utilizado en SPDY).
HTTP/2 está basado en SPDY ("SPeeDY"), un protocolo complementario a HTTP presentado por
Google con el objetivo de incrementar la velocidad de navegación. Cuando se comenzó a trabajar en
HTTP/2 Google anunció que dejaría de soportar SPDY para apoyar la nueva versión HTTP.
Como ya introducíamos, la Web consiste en una enorme colección de documentos, dispersos por
servidores de todo el mundo, e interconectados mediante enlaces. Por tanto, se vuelve necesario
disponer de un esquema de direccionamiento que permita ubicar y solicitar esos documentos.
Este esquema de direccionamiento es el que proporcionan las URLs (Unified Resource Locators). Las
URLs no son más que una forma estándar de especificar la ubicación de los documentos en la Web.
La sintaxis básica de una URL responde al siguiente esquema:
http://host:port/path
donde host es el servidor donde reside el documento, port es el puerto TCP donde escucha el
servidor, y path su ruta relativa dentro del servidor.
No obstante, las URLs también admiten una sintaxis más general dando lugar al concepto global de
URI (Uniform Resource Identifier) al incluir la información después de “path”, como sigue:
scheme://host:port/path/extra-path-info?query-info
donde host, port y path tienen el significado ya visto, scheme especifica el protocolo de
comunicaciones (HTTP o HTTPS, FTP, etc.) y extra-path-info?query-info es información adicional
5
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
para la generación dinámica de HTML, y que como se ha mencionado al añadirse a la URL conforma
la URI.
Para conocer todos los detalles de las URLs se puede consultar el RFC 1738
(http://www.faqs.org/rfcs/rfc1738.html).
<html>
<head>
<title>Página de ejemplo</title>
</head>
<body>
<p>
Ejemplo <b>básico</b> de página HTML.
Es importante notar la mezcla de información y formateo.
<!-- Esto es un comentario en HTML -->
</p>
</body>
</html>
Como se puede apreciar se mezcla tanto información de la página (título y contenido) cómo
instrucciones para el formateo (por ejemplo <b> para texto en negrita o <p> para indicar un párrafo).
Algunas de las etiquetas más utilizadas son para:
- Formateo de texto: negrita <b>, cursiva <i>, subrayado <u>, títulos (<h1>, <h2>, etc.),
párrafos <p>, salto de línea <br />, fuente (<font face="arial" size=8 color=red>Texto</ font >),
etc.
- Listas: <ul> para listas no ordenadas y <ol> para ordenadas.
<UL>
<LI> Primer item
<LI> Segundo item
<LI> Tercer item
</UL>
- Tablas:
<table>
<tr>
<td>Celda 1</td>
<td>Celda 2</td>
<td>Celda 3</td>
</tr>
<tr>
<td>Celda 4</td>
<td>Celda 5</td>
<td>Celda 6</td>
</tr>
- Imágenes: <img src="miImagen.gif">
</table>
7
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Sexo:
<input type="radio" name="sexo" value="hombre">Hombre
<input type="radio" name="sexo" value="mujer">Mujer
</br>
Aficiones:
<input type="checkbox" name="afic" value="musica">Música
<input type="checkbox" name="afic" value="cine">Cine
</br>
elementos conforman una página web, cómo nombrarlos y cómo se relacionan entre sí. Con este
objetivo el W3C definió un estándar denominado DOM (Document Object Model).
DOM es una API que proporciona un conjunto estándar de objetos para representar documentos
HTML y XML y un modelo estándar sobre cómo pueden combinarse dichos objetos. El DOM
representa los objetos de un documento HTML o XML organizados jerárquicamente. De esta forma,
los programas pueden acceder y modificar el contenido, estructura y estilo de los documentos HTML
y XML.
Las diferentes versiones del DOM son conocidas como DOM Nivel 0, DOM Nivel 1, DOM Nivel 2,
DOM Nivel 3 y actualmente la última especificación publicada es DOM Nivel 4.
Dado que se usa tanto para XML como para HTML, se volverá a retomar este tema en la sección
correspondiente de XML.
1.5 HTML5
Tal como se ha comentado en la introducción, la última revisión de HTML, HTML5, introduce
importantes novedades que los desarrolladores llevaban reclamando mucho tiempo. Actualmente, el
termino HTML5 es comúnmente usado para referirse al conjunto HTML5+CSS3+Javascript, como se
verá en apartados posteriores.
Las novedades más importantes introducidas en HTML5 implican:
- Es adaptable, es decir, permite realizar diseños que se adaptan a diferentes dispositivos
(web, tablets, móviles…). De hecho, ofrece una mayor compatibilidad con los navegadores de
distintos dispositivos.
- Simplifica el código provocando páginas más ligeras y, por tanto, más rápidas, lo que
favorece tanto la usabilidad como la indexación en buscadores.
- Incorpora nuevas capacidades JavaScript con motores más potentes. Por ejemplo, es posible
ejecutar múltiples JavaScript en paralelo en una misma página y ejecutar páginas sin estar
conectado. De hecho, desde Microsoft se ha fomentado el desarrollo de aplicaciones de
escritorio para Windows 8 utilizando HTML5.
- Mayor soporte para la web semántica. Incorpora nuevas etiquetas y metadatos que favorecen
el posicionamiento SEO y la accesibilidad.
- Mejora el soporte a contenido multimedia posibilitando la inserción de vídeos y audio
directamente. Ofreciendo, además, soporte a codecs específicos.
- Reduce la necesidad del uso de plugins, como flash y otros scripts.
- Mejora en formularios.
- Nuevas APIs: geolocalización, drag & drop, etc.
En concreto se han eliminado etiquetas, algunos atributos de etiquetas y se han modificado y añadido
otras para dar un mayor soporte a la web semántica, mejorar los formularios, añadir nuevas
funcionalidades, etc. A continuación se enumeran algunas de las etiquetas más importantes que han
sido introducidas o eliminadas. Puede consultar toda la sintaxis en http://www.w3.org/TR/html5/.
Elementos borrados:
- Referentes a presentación: <basefont>, <font>, <center>, <big>, <u>, <strike>. Deben
definirse mediante CSS.
- Atributos de formato de algunas etiquetas: atributo background de <body>, atributo align y
border, cellpadding y cellspacing de las tablas. Deben definirse mediante CSS.
- Elementos que habían caído en desuso por ser reemplazables: por ejemplo <dir> (se usa
<ul> ) o <applet> (se usa <embed> o <object>).
- Etiquetas problemáticas como <frame> (reemplazada por <iframe>, <frameset>, <noframes>
Nuevos elementos:
9
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
<header>
<nav>
<section>
<aside>
<article>
<footer>
10
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Un primer intento de lograr esta separación información – formato fueron las hojas CSS (Cascading
Style Sheets), aunque ha habido otros intentos posteriores más exitosos (ej. XML). Las hojas CSS
son un estándar del W3C.
Las hojas CSS permiten que las páginas web tengan dos partes claramente diferenciadas:
- Una parte donde se definen los estilos o formatos (<style> ... </style>)
- Y otra parte de contenido o información (<body> ... </body>) donde se aplican los estilos.
Esto se puede apreciar en la siguiente página web de ejemplo, donde se define un estilo para h1:
<html>
<head>
<title>Ejemplo de Document-level style</title>
<style type="text/css">
h1 {color: red; font-family: Arial; font-size: large;}
</style>
</head>
<body>
<h1>Texto con el estilo definido arriba</h1>
</body>
</html>
En realidad, las hojas CSS permiten ir un paso más allá en la separación entre información y formato.
Así, la definición de los estilos, que en el ejemplo anterior se hace dentro de la propia página HTML
(Document-level Styles), se puede extraer a otros ficheros separados (External Styles). De este
modo, además, se fomenta la reutilización de los estilos entre varias páginas web de una aplicación o
sitio.
Esto se puede observar en el siguiente ejemplo, donde los estilos se han definido en el fichero
externo /css/mis_estilos.css:
<html>
<head>
<title> Estilos enlazados </title>
<link rel="stylesheet" type="text/css"
href="css/mis_estilos.css" media="screen" />
<style> <!-- OTROS ESTILOS --> </style>
</head>
<body>
<h1>Texto con el estilo definido en el fichero externo</h1>
</body>
</html>
11
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Finalmente, las hojas CSS permiten una tercera y última forma de definir estilos (Inline Styles),
aunque es la menos recomendada porque es la que menor separación información – formato
consigue. Sólo se recomienda en aquellos en casos en que se desee modificar el formato de un
elemento concreto muy específico y que no se va a volver a utilizar. En esta modalidad, la definición y
aplicación del estilo se dan conjuntamente en el contexto de una etiqueta HTML; por ejemplo:
En definitiva, las hojas CSS permiten definir estilos de tres formas diferentes que, de menor a mayor
separación información – formato son:
- Inline Styles.
- Document-level Styles.
- External Styles.
Es posible consultar todos sus detalles en http://www.w3.org/Style/CSS/.
Es importante resaltar que antes de que existiera CSS, los desarrolladores utilizaban tablas (<table>)
para maquetar las web (es decir, estructurar espacialmente el contenido). Esta solución presentaba
diversos problemas, ya que generaba un código complejo y difícil de reutilizar, no se adapta a
pantallas pequeñas y generaba, por lo general, webs más pesadas e ineficientes. Desde la aparición
de CSS, la maquetación con hojas de estilo simplifica y mejora mucho este proceso. Aquí podemos
ver un ejemplo de una web maquetada con CSS:
<html>
<head>
<title> Estilos enlazados </title>
<link rel="stylesheet" type="text/css" href="estilo.css"
media="screen" />
</head>
<body>
<div id="contenedor">
<div id="cabecera"> Texto cabecera</div>
12
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
#contenedor{
width:80%;
background-color: #f5f5f5;
margin: 0 auto 0 auto;
font-family:Verdana;
}
#cabecera{
width:100%;
background-color: green;
text-align: center;
overflow:hidden;
padding: 0px 0px 0px 0px;
margin: 0 auto 10px auto;
}
#cuerpo{
width: 100%;
margin: 0px auto 0px auto;
background-color: #f5f5f5;
overflow: hidden;
}
#pie{
background-color: yellow;
margin: 10px 0 0 0;
padding: 0 0 0 0px;
text-align:center;
clear: both;
font: 8pt Verdana;
}
Como resultado de la aplicaciones de los estilos CSS sobre el código HTML podemos ver como se
mostraría en la Figura 4.
1.6.1 CSS3
CSS se ha creado en diferentes niveles (especificaciones), donde cada nivel se construye sobre el
anterior, dotándolo generalmente de mayor funcionalidad y preservando la compatibilidad hacia atrás.
13
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Actualmente la última especificación es CSS3 (desde 2011). A diferencia de los anteriores niveles,
CSS3 está estructurado en módulos, por lo tanto, cada módulo se encuentra en un estado diferente
de estabilidad y desarrollo.
Algunas de las novedades incluyen la mejora en el tratamiento de los fondos y bordes (CSS3
Backgrounds and Borders Module). Por ejemplo, se ha incluido la posibilidad de establecer múltiples
imágenes de fondo ('background-clip', 'background-break', 'background-origin', etc.), crear sobras
(box-shadow), poner los bordes redondeados (border radius), incluir transparencia en cualquier
elemento (opacity), etc.
Otras novedades están relacionadas con la apariencia del texto, como por ejemplo, la posibilidad de
partir las palabras con guiones al final de línea o de instalar la fuente de la letra que se desee sin que
el usuario deba tenerla instalada en su ordenador. Con CSS3 es posible también dividir el texto en
columnas utilizando las propiedades column-count, column-gap y column-rule.
Otra importante característica incluida en CSS3 es el nuevo modelo de cajas flexibles (propiedad
Flexible Box o flexbox), el cual permite establecer los elementos de una página para que se
comporten de forma predecible en diferentes tamaños de pantalla y dispositivos. Esta característica
todavía se encuentra en estado “W3C Candidate Recommendation” (candidata a recomendación).
Por último, una de las grandes novedades de CSS3 es la posibilidad de crear animaciones de forma
sencilla y sin utilizar plugins adicionales. Esto se realiza mediante la propiedad animation y sus sub-
propiedades, que nos permiten determinar el tiempo y duración de la animación (animation-delay,
animation-name, animation-duration, animation-iteration-count, animation-play-state, etc.).
Para especificar la apariencia utilizaremos reglas @keyframes, que describe los fotogramas de la
animación. La subpropiedad animation-name indica la regla @keyframes que describe los fotogramas
de la animación. El fotograma usa percentage para indicar en qué momento de la secuencia de la
animación tiene lugar: 0% (from) es el inicio y 100% (to) es el final. También se pueden incluir
fotogramas para pasos intermedios. Haciendo uso de javascript, es posible usar eventos (objeto
AnimationEvent) para un mayor control de las animaciones. A continuación se muestra un ejemplo de
animación que cambia el color del elemento de forma gradual.
div {
-webkit-animation: myfirst 5s; /* Chrome, Safari, Opera */
animation: myfirst 5s;
}
/* Chrome, Safari, Opera, -webkit para compatibilidad con
navegadores antiguos */
@-webkit-keyframes myfirst {
0% {background: red;}
25% {background: yellow;}
50% {background: blue;}
100% {background: green;}
}
/* Standard syntax */
@keyframes myfirst {
0% {background: red;}
25% {background: yellow;}
50% {background: blue;}
100% {background: green;}
}
También es posible rotar los elementos en 2D y 3D mediante la propiedad transform o crear efectos
cuando se cambia de un estilo a otro usando la propiedad transition.
Dado que, como se ha comentado en este tema, CSS3 está estructurado en módulos, cada módulo
se encuentra en un nivel de estabilidad y desarrollo. Esto está dando lugar a que algunos módulos se
encuentren ya en un nivel 4 de desarrollo (por ejemplo, el módulo Selectors). Al conjunto de estos
módulos se le conoce como CSS4, pero no será hasta que todos los módulos del nivel 3 se
encuentren completamente desarrollados cuando podamos hablar realmente de CSS4.
14
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
En los últimos años han ganado mucha popularidad los preprocesadores de CSS. Los
preprocesadores CSS permiten operaciones avanzadas que no ofrece CSS directamente. Los
preprocesadores utilizan la sintaxis del preprocesador específico y lo convierten al código CSS final
que será interpretado por el navegador. Así, por ejemplo, permiten el uso de variables, reutilización
de bloques de código, usar funciones, estructuras de control, etc.
Actualmente existen muchos preprocesadores CSS. Algunos de los más utilizados son Sass 2 (utiliza
Ruby), Less (escrito en Javascript) y Stylus 3 (utiliza Node.js). Los tres son preprocesadores bastante
potentes, sin embargo LESS4 es el más extendido debido a que es más fácil de utilizar (aunque
ligeramente menos potente), es usado en Twitter Bootstrap y cuenta con una comunidad de usuarios
muy activa (al igual que Sass). Existen numerosos frameworks que pueden ayudarnos en el uso de
estos preprocesadores, como Twitter Bootstrap, Compass o Jeet Framework.
Con el creciente uso de diferentes dispositivos para acceder a la web (tablets, móviles, etc.) se hace
imprescindible una forma de diseñar las webs de tal forma que se vean adecuadamente en diferentes
dispositivos y resoluciones. Debido a esto el responsive web design (o diseño web adaptable) ha
tenido una gran aceptación en los últimos años.
Responsive web design es un conjunto de técnicas que permite que la página web se adapte al
medio a través del cual se está accediendo y visualizando. Responsive web design se apoya en tres
conceptos fundamentales:
1. Uso de Media Queries (incluidas en CSS3). Permiten aplicar estilos condicionalmente
teniendo en cuenta los parámetros de la pantalla.
2. Diseño fluido. En lugar de diseñar la web basándonos en valores fijos (por ejemplo width:
960px), el diseño fluido está pensado en términos de proporciones. Así se definen los layouts
en base a porcentajes que se ajustan a la pantalla proporcionalmente.
3. Elementos fluidos dentro de los layouts, como por ejemplo, las fuentes, imágenes o
elementos multimedia también serán adaptados proporcionalmente.
Con el uso de responsive design sólo es necesaria una versión de nuestro HTML y CSS para que se
visualice correctamente en cualquier dispositivo y resolución.
Relacionado con el responsive design tenemos otra aproximación llamada adaptative design. Ambos
enfoque buscan el mismo objetivo que consiste en adaptar el interfaz a las dimensiones del
dispositivo para facilitar la interacción con el usuario. La diferencia entre ambos está en que
adaptative design define unos rangos de resolución de pantallas (viewports) en los que el
comportamiento es el mismo y el cambio se produce solo al saltar de rango de resolución de pantalla.
En cambio el responsive design los cambios son continuos al cambiar la resolución, es decir los
cambios son más fluidos, suaves y continuos.
Las dos aproximaciones son igual de validas pero hay algunas características asociadas a cada
enfoque que conviene conocer. El responsive design requiere más trabajo de diseño y de
implementación, pero se suele considerar la carga más rápida. En cambio el adaptative design se
considera menos flexible para adaptarse a cualquier dispositivo, pero más sencillo y rápido de
implementar.
2 http://sass-lang.com/
3 http://learnboost.github.io/stylus/
4 http://lesscss.org/
15
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
1.7 JavaScript
JavaScript es un lenguaje de programación muy relacionado con HTML y, de hecho, permite
interactuar con el Modelo de Objetos del Documento (DOM). Los programas de JavaScript se
incrustan en las páginas HTML, o se vinculan a ellas, y se ejecutan en el navegador web con el objeto
de dotar a las páginas web de mayor interactividad con el usuario.
Un ejemplo típico de programa JavaScript es aquel que, vinculado a un formulario HTML, permite
validar la sintaxis de los campos contra unos patrones (ej. un campo de fecha contra el patrón
“dd/mm/aaaa”), antes de que los datos del formulario sean enviados al servidor web.
Las características básicas de JavaScript son:
- Es un lenguaje de scripting (interpretado, no compilado). Los programas de JavaScript se
denominan scripts.
- Es un lenguaje orientado a objetos. Si bien suele considerarse un lenguaje orientado a
objetos, existe cierta controversia sobre si debería ser considerado orientado a objetos en el
sentido estricto.
- Los scripts se incrustan o se vinculan a las páginas HTML (mediante las etiquetas HTML
<script> ... </script>).
- Los scripts se descargan, junto con las páginas HTML, desde el servidor hasta el navegador
web.
- Los scripts se ejecutan en el navegador web, no en el servidor.
<html>
<head>
<script language="Javascript">
function dameNombre(nombre) {
alert("Hola "+ nombre+"!");
}
</script>
</head>
<body>
Por favor, escriba su nombre:
<form>
<input type="text" name="name" onBlur="dameNombre
(this.value)" value="">
</form>
</body>
</html>
Aunque la versión inicial de JavaScript fue desarrollada por Netscape, posteriormente surgieron
diversas versiones del mismo lenguaje, casi siempre con pequeñas incompatibilidades entre sí. Así,
existe la versión JScript, que es la versión de JavaScript desarrollada por Microsoft. También existe
ECMAScript, que es la versión de JavaScript estandarizada por la ECMA (European Computer
Manufacturers Association).
16
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
1.7.1.1 AJAX
JavaScript es uno de los lenguajes más populares para desarrollo web. Sin embargo, presenta
limitaciones respecto a su potencia para desarrollar páginas dinámicas que interactúen con el
usuario. Estas limitaciones junto con la aparición de Flash disminuyeron su popularidad durante unos
años. La llegada de AJAX devolvió de nuevo la fama a JavaScript.
El término AJAX es un acrónimo de Asynchronous JavaScript + XML. En realidad, AJAX no es una
tecnología en sí misma, si no la agrupación de varias tecnologías:
- XHTML o HTML y hojas de estilos en cascada (CSS) para la presentación.
- DOM para interactuar dinámicamente con la información presentada.
- El objeto XMLHttpRequest para intercambiar datos de forma asíncrona con el servidor web.
- XML y XSLT para el intercambio y manipulación de datos.
- JavaScript
AJAX permite una comunicación asíncrona con el servidor web gracias al motor AJAX escrito en
JavaScript. Gracias a esto es posible realizar cambios sobre una página web sin necesidad de
recargarla ni de que el usuario realice ninguna acción, lo que aumenta en gran medida la
interactividad, velocidad y usabilidad de las páginas. Es precisamente esta característica la que
propició el auge de AJAX en el desarrollo web.
1.7.1.2 JSON
{
"id": 69,
"name": "HTML and XML",
"price": 55.00,
"tags": ["html", "xml", "ASTIC"]
"url": "http://www.astic.es/opositor/adquirir-el-temario"
}
combinación de HTML con otras tecnologías permite la generación dinámica de páginas web. A esta
combinación suele referirse bajo el nombre de DHTML (Dynamic HTML). De esta forma, cuando el
servidor Web recibe una petición para una determinada página, la página se genera automáticamente
por el software como respuesta directa a la petición de la página. Esto es conocido como página web
dinámica.
La generación del contenido dinámico puede hacerse en el servidor o en el cliente, empleándose por
lo general lenguajes distintos en cada caso, aunque algunos lenguajes pueden trabajar en ambos
lados.
En la generación dinámica en el servidor, cuando el servidor recibe una petición, ejecuta una
aplicación determinada y envía el resultado al cliente. El navegador cliente interpreta la respuesta
como un HTML normal y lo visualiza. Por otro lado, cuando la generación es en lado del cliente, al
recibir la petición el servidor, este envía una respuesta que contiene código que el cliente es capaz de
entender y ejecutar para realizar una determinada acción y después visualizarla.
La generación en el lado del cliente tiene la ventaja de que se evita sobrecargar al servidor, sin
embargo, su limitación estriba en que el servidor sólo podrá enviarle código que sea capaz de
entender. Además, la ejecución en el lado del servidor puede realizarse sin tener en cuenta al cliente
y un ambiente controlado.
Como se ha dicho, normalmente se utilizan lenguajes y tecnologías diferentes en el lado cliente y
servidor. En el lado cliente podemos encontrar, por ejemplo, controles ActiveX, objetos embebidos
tipo Flash, applets, AJAX, etc.
En el lado del servidor es posible utilizar lenguajes embebidos en código HTML (como PHP, ASP o
JSP), enlaces a ejecutables (tipo CGI o SSI), objetos (Servlets) e incluso lenguajes que separan la
presentación de la lógica de negocio (ASP.Net de Microsoft).
Aunque no es el objetivo de este tema (existen temas específicos para algunas de las tecnologías
aquí nombradas) profundizar en cada una de estas tecnologías, se dará un breve repaso sobre las
características principales de algunas de las más importantes.
De entre las tecnologías para generación dinámica en el lado del cliente destaca especialmente
Javascript junto con AJAX, de las que ya se ha hablado anteriormente en este tema. Sin embargo
existen otras tecnologías que también se tratan en profundidad en el tema 62.
Cabe resaltar también en este apartado, aunque actualmente su uso es cada vez menor, la utilización
de plugins específicos como Flash o Silverlight. Este tipo de tecnología requiere la instalación de
plugins específicos en el navegador para poder visualizarse.
Entre ellos, el que ha gozado de más popularidad es Adobe Flash (hasta 2005, Macromedia Flash).
Adobe Flash es el nombre bajo el que se hace referencia tanto al formato, como al programa de
edición multimedia, como al reproductor de SWF (Shockwave Flash) llamado Adobe Flash Player.
El formato Flash utiliza gráficos vectoriales e imágenes ráster, sonido, código de programa, flujo de
vídeo y audio bidireccional (el flujo de subida sólo está disponible si se usa conjuntamente con Flash
Media Server). En sentido estricto, Flash es el entorno y Flash Player es el programa de máquina
virtual utilizado para ejecutar los archivos generados con Flash, de forma que los archivos de Flash,
generalmente con extensión de archivo SWF, pueden aparecer en una página web para ser vista en
un navegador, o pueden ser reproducidos independientemente por un reproductor Flash.
Flash fue creado inicialmente para servir como soporte de animaciones sencillas, de tipo GIF
animado o los archiconocidos banners, pero el apoyo que encontró entre los webmasters y los
diseñadores web fue asombroso, apoyado en su facilidad de uso, la calidad de los resultados, la
rápida descarga y la profesionalidad de los resultados, entre otros.
Sin embargo, en los últimos años el uso de Flash ha decaído sustancialmente debido, en parte, al
gran auge de los dispositivos móviles, la mayoría de los cuales no tienen la capacidad de cómputo
suficiente como para ejecutar una animación Flash. Junto a esto, Flash ha presentado también
18
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
muchas vulnerabilidades de seguridad. Todo esto ha provocado que actualmente su uso no sea tan
común como lo era hace unos años.
CGI (Common Gateway Interface) es una de las primeras y más básicas tecnologías para la
generación web dinámica. Especifica un estándar, definido en el RFC 3875, que determina el
mecanismo de comunicación entre el servidor web y una aplicación externa en cualquier lenguaje, de
tal forma que desde dicha aplicación puedan recibirse los datos enviados por el cliente y el resultado
le sea devuelto para visualizarse.
En CGI el cliente indica la aplicación a ejecutar y los argumentos mediante una URL que forma la
petición HTTP del cliente. El servidor transfiere dicha información a la aplicación para que esta la
ejecute y forme una respuesta, normalmente como documento HTML. La respuesta es pasada al
servidor y redirigida por este al cliente para su visualización.
De esta forma, la aplicación puede estar en cualquier lenguaje. Sin embargo, el problema de CGI es
el rendimiento ante múltiples peticiones, ya que para cada una debe crearse un nuevo proceso en el
servidor. Existen algunas propuestas, como extensiones o módulos del servidor para cada lenguaje
(p.e., mod_perl, ISAPI de Microsoft o NSAPI de Netscape) o FastCGI, que intentan resolver este
problema. Otras alternativas a CGI son Servlets o ASP.
Un servlet es un componente web desarrollado en Java que permite extender la funcionalidad del
servidor. Un servlet es invocado a través de una URL y pueda generar contenido dinámico como
texto, imágenes y sonido, aunque normalmente será contenido HTML, que es devuelto al cliente para
visualizarlo.
Al ser Java un entorno multihilo, los servlets están diseñados para permitir dar respuesta a un alto
número de solicitudes concurrentes, lo que soluciona el problema visto con CGIs.
JSP es otra de las tecnologías, junto con Servlets, para generación dinámica de páginas web usando
Java. Las páginas JSP combinan código HTML con código Java, mezclando por tanto, componentes
estáticos y dinámicos.
Para desplegar y correr JavaServer Pages, se requiere un servidor web compatible con contenedores
servlets como Apache Tomcat o Jetty. En realidad, JSP está basado en servlets, de hecho, el motor
JSP realiza la traducción de una página JPS a servlet la primera vez que se invoca.
ASP es la tecnología para la creación de páginas dinámicas del lado del servidor desarrollada por
Microsoft. En realidad ASP no es un lenguaje de programación, si no que ofrece un marco sobre el
que construir las páginas, que podrán ser desarrolladas utilizando lenguajes de script, como por
ejemplo Visual Basic Script, JScript o PerlScript. Este código de script será embebido dentro de las
páginas HTML.
19
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
La filosofía de ASP es similar a la vista en JSP, sin embargo, ASP sólo funciona en Microsoft
Windows, ya que requiere el servidor IIS (Internet Information Server). También es posible ejecutarlo
sobre servidores Unix/Linux utilizando el framework Mono.
La evolución de ASP es ASP.NET. Las páginas de ASP.Net, conocidas como Web Forms, están
construidas sobre el Common Language Runtime (CLR), lo que permite utilizar cualquier lenguaje
soportado por la plataforma .NET (VB.NET, C#, JScript.Net).
Se puede profundizar en ambas tecnologías en el tema 115.
PHP es uno de los lenguajes más usados en la actualidad. El código PHP es embebido dentro del
código HTML e interpretado por el servidor mediante un módulo de procesador de PHP que genera la
página resultado. Su gran aceptación en el mundo web es debida a que es un lenguaje muy flexible,
potente, de código abierto y soportado por la mayoría de servidores web y sistemas operativos y es
código abierto.
Estas características son las que han permitido que PHP sea elegido como tecnología de servidor por
múltiples sitios web con gran demanda de tráfico, como por ejemplo Facebook. De hecho, la
combinación de Linux+Apache+MySql+PHP, más conocida como LAMP, es la más utilizada para
definir la infraestructura de un servidor, existiendo incluso paquetes para su instalación y
configuración conjunta.
1.8.2.6 Otros
Existen otros muchos lenguajes en el lado del servidor como Python, Ruby, Perl, etc. Últimamente,
una tendencia que está tomando cada vez más relevancia es Javascript del lado del servidor. Existen
varias alternativas para esto: Node.js, Jaxer, EJScript, RingoJS, y AppengineJS. De entre ellas la más
utilizada hoy día es Node.js5. Node.js es una plataforma para el desarrollo de aplicaciones escalables
construida sobre el intérprete de JavaScript de Google Chrome y puede ejecutarse en Windows,
Linux o Mac OS X. Está enfocado en maximizar el rendimiento y la eficiencia mediante un sistema de
comunicación asíncrono y orientado a eventos.
5 https://nodejs.org/
20
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
como RDF (basado en XML) y OWL (basado en RDF), en los que no se profundizará, pues el tema
120 de este temario ya profundiza ampliamente en los conceptos de Web 2.0, Web 3.0 y Web
semántica.
21
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
6
Lenguaje de marcado es lo mismo que lenguaje de etiquetas. Los lenguajes de marcado / etiquetas
tienen etiquetas como <html>, <head>, <body>, <title>, etc.
22
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
sobre cómo presentarlos (ej. color, tamaño de letra, etc.). Además, los documentos HTML están
pensados para ser presentados en un navegador web, y no para intercambiar datos entre
aplicaciones informáticas.
Finalmente, la sintaxis de HTML es un tanto caótica, ya que dependiendo de la versión de HTML hay
etiquetas que requieren cierre (ej. <html> ... </html>) y otras que no lo requieren (ej. <p>), los
atributos pueden usar comillas o apóstrofes (“ o ‘), las mayúsculas y minúsculas se consideran
indistinguibles, etc. Esto, a su vez, lleva a que la interpretación que los navegadores hacen del HTML
no sea uniforme. Así, es habitual que navegadores distintos (ej. Internet Explorer y Mozilla) presenten
una misma página HTML de formas ligeramente distintas, dando lugar a tener que realizar
modificaciones AdHoc y utilizar funcionalidades específicas para cada navegador con el fin de
conseguir un resultado lo más uniforme posible.
Por su parte, XML es otro lenguaje de marcado. Sin embargo, las etiquetas y atributos de éstas en
XML son ilimitadas. No se puede decir que las etiquetas de XML sean <A>, <B>, <C>, etc., porque
esto no es así. Lo que tiene XML es una serie de mecanismos que se verán más adelante (DTDs y
XML Schemas) y que permiten definir otros lenguajes de marcado para aplicaciones concretas. Serán
estos otros lenguajes de marcado basados en XML los que tendrán etiquetas fijas. Así, un lenguaje
definido para intercambiar datos entre editores de libros tendrá etiquetas como: <libro>, <título>,
<autor>, <precio>, etc.
Adicionalmente, los documentos XML se caracterizan por separar completamente información y
presentación, es decir, en un documento o fichero XML sólo aparece información 7 (ej. los datos de un
libro) y su metainformación, y nunca las instrucciones sobre cómo presentarlos (ej. color, tamaño de
letra, etc.). Por eso, los documentos XML están pensados para intercambiar datos entre aplicaciones
informáticas.
Finalmente, la sintaxis de XML es formal y precisa. Al contrario de lo que ocurre con HTML, no caben
interpretaciones distintas de un mismo documento XML.
7
Esta información aparece estructurada. Es decir, no hay datos sin más. Los datos están
organizados, ordenados, estructurados.
23
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Esto es así, precisamente, porque XML permite definir lenguajes de marcado que facilitan el
intercambio de datos entre aplicaciones, independientemente de cuál sea su naturaleza (lenguaje de
programación y sistema operativo). A la hora de diseñar un proceso de intercambio de datos como el
anterior, se pueden adoptar dos enfoques extremos:
- Diseñar un proceso ad-hoc para las aplicaciones que se quiere comunicar. Con este enfoque
el esquema del documento XML (DTD o XML Schema) sería algo específico, y el protocolo
de comunicaciones también.
- Diseñar un proceso estándar que sirva tanto para estas aplicaciones como para cualesquiera
otras que se quieran comunicar mediante XML. Con este enfoque el esquema del documento
XML (DTD o XML Schema) sería estándar (como por ejemplo en SOAP), y el protocolo de
comunicaciones también (HTTP).
Adoptar un enfoque estándar es especialmente útil en el caso de integrar aplicaciones heterogéneas
(ej. están programadas en lenguajes de programación diferentes, se ejecutan sobre plataformas
diferentes, etc.) y distribuidas (dispersas geográficamente), porque todos los interesados en una
materia (ej. todos los editores de libros) pueden recurrir a esos lenguajes estándar basados en XML
para el intercambio de datos entre ellos.
Por eso últimamente han proliferado tantísimo los estándares basados en XML. Hoy en día hay
estándares XML para casi cualquier aplicación que se pueda imaginar (ej. WML, XSL, RSS, etc.).
Algunos “estándares” llegan a imponerse, y otros no tanto. Pues bien, éste es precisamente el caso
de los Servicios Web XML, donde han aparecido múltiples estándares ampliamente extendidos.
Por Servicios Web XML se entiende un conjunto de estándares, entre los que destacan SOAP, WSDL
y UDDI, que sirven para comunicar de forma estándar aplicaciones heterogéneas y distribuidas.
En realidad, ha habido muchos intentos previos de conseguir el mismo objetivo (comunicar
aplicaciones heterogéneas y distribuidas), siendo algunos de los más notables:
- RPCs (Remote Procedure Calls).
- CORBA (Common Object Request Broker Architecture).
- DCOM (Distributed Component Object Model).
- RMI (Remote Method Invocation).
- Etc.
Entonces, ¿cuál es la principal aportación o novedad de los Servicios Web XML que está haciendo
que tengan tanto éxito y superen a sus antecesores? Su principal aportación es que todos sus
estándares giran en torno a XML y otros protocolos sencillos de Internet como HTTP. Así, cuando dos
aplicaciones se comunican mediante Servicios Web XML:
- El formato de los mensajes que intercambian es XML (y más en particular SOAP).
- El protocolo de comunicaciones que utilizan para intercambiar esos mensajes es HTTP 8.
El uso de XML y HTTP hace que los Servicios Web XML dispongan de una serie de ventajas sobre
sus antecesores, entre las que destacan las siguientes:
- Interoperabilidad: Todos los lenguajes de programación y sistemas operativos soportan XML
y HTTP.
- Ubicuidad: Al ser HTTP el protocolo de comunicaciones, los servicios web están disponibles
en toda la Internet, y no solamente en redes internas (intranets) como ocurría con sus
antecesores.
- Bajo acoplamiento: Las aplicaciones que se comunican mediante servicios web están poco
acopladas, ya que pueden estar implementadas en lenguajes de programación distintos,
ejecutarse sobre plataformas distintas, etc.
- Reutilización: Una misma funcionalidad implementada como servicio web puede ser
reutilizada en muchas aplicaciones, fomentando así la reutilización del software.
8
Existe la posibilidad de utilizar otros protocolos como FTP, SMTP, etc., pero lo más habitual es que se utilice HTTP.
24
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
- Amplio soporte: Hoy por hoy, son muchos los fabricantes de software que soportan el
desarrollo de servicios web mediante librerías, entornos de desarrollo, entornos de ejecución,
documentación, etc.
- Rápido aprendizaje: En general, el aprendizaje de XML y HTTP es mucho más sencillo que el
aprendizaje de arquitecturas complejas como CORBA y los productos comerciales que la
implementan (Orbix, etc.).
En definitiva, mediante el uso de Servicios Web XML se fomenta la integración de aplicaciones
mediante el uso de estándares, evitando así las integraciones ad-hoc que tanto se han empleado en
este campo. Los Servicios Web XML son un estándar del W3C (http://www.w3.org/2002/ws/).
A continuación se revisan los conceptos fundamentales de los Servicios Web XML.
Un servicio web es algo similar a una función en un lenguaje de programación convencional. Se trata
de una funcionalidad o algoritmo que se pone a la disposición de otras aplicaciones remotas para que
sea invocada por éstas.
Un servicio web tiene dos componentes fundamentales:
- Interfaz: La interfaz de un servicio web es su descripción externa (nombre del servicio,
parámetros de entrada, parámetros de salida, dirección de transporte, etc.). Las aplicaciones
remotas que utilicen el servicio web sólo necesitan conocer su interfaz; pueden abstraerse de
sus detalles de implementación.
- Implementación: La implementación de un servicio web es su codificación en un lenguaje de
programación concreto. La misma interfaz puede estar implementada en lenguajes de
programación distintos (ej. Java, C++, C#, etc.).
Esta distinción entre interfaz e implementación, que es lo que permite que las aplicaciones a integrar
tengan menor acoplamiento, puede apreciarse en la Figura 7:
La aplicación que ofrece y exporta el servicio web se llama proveedor del servicio. La aplicación que
utiliza el servicio web se llama solicitante del servicio.
25
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Al contrario de lo que pudiera parecer por su nombre (SOAP = Simple Object Access Protocol), SOAP
no es un protocolo de comunicaciones, como lo son IP, TCP o HTTP. SOAP es, en realidad, una
gramática XML que describe el formato de los documentos XML a intercambiar entre el solicitante y el
proveedor del servicio (peticiones y respuestas).
Más en particular, se suele decir que SOAP define un sobre (un formato de mensaje) en el que
“ensobrar” las peticiones del solicitante al proveedor y las respuestas del proveedor al solicitante. Por
tanto, SOAP sirve para implementar RPCs (llamadas remotas a procedimientos) entre el solicitante y
el proveedor del servicio.
SOAP puede funcionar sobre cualquier protocolo de transporte (HTTP, FTP, SMTP, etc.). Sin
embargo, lo más habitual es que los mensajes SOAP se transporten sobre HTTP. Esto se puede
apreciar en la Figura 8:
El programador de SOAP no tendrá que generar los mensajes SOAP ni las peticiones / respuestas
HTTP manualmente. Antes al contrario, el programador utilizará una librería SOAP, lo que le permitirá
pasar fácilmente entre objetos del lenguaje de programación (ej. Java) y mensajes SOAP. Una de las
librerías SOAP más utilizadas es Axis para Java.
La apariencia que tiene una petición SOAP es como sigue (nótese que es un documento XML):
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:dameCambio xmlns:n1="urn:demo1:exchange"
SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding">
<pais1 xsi:type="xsd:string">USA</pais1>
<pais2 xsi:type="xsd:string">Francia</pais2>
</ns1:dameCambio>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
26
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Por otro lado, la apariencia que tiene una respuesta SOAP es como sigue (de nuevo, un documento
XML):
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:dameCambioRespuesta xmlns:n1="urn:demo1:exchange"
SOAP-
ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding">
<return xsi:type="xsd:float">145.42</return>
</ns1:dameCambioRespuesta>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Para conocer todos los detalles sobre SOAP se pueden consultar las referencias especializadas
(http://www.w3.org/TR/soap/).
9
Para los conocedores de CORBA, la descripción WSDL de un servicio web es el equivalente a la descripción IDL (Interface
Definition Language) de un objeto remoto. Tanto WDSL como IDL describen la interfaz del servicio web u objeto remoto, es
decir, el conjunto de operaciones que soportan.
27
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
targetNamespace="http://example.com/stockquote.wsdl"
xmlns:tns="http://example.com/stockquote.wsdl"
xmlns:xsd1="http://example.com/stockquote.xsd"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<schema targetNamespace="http://example.com/stockquote.xsd"
xmlns="http://www.w3.org/2000/10/XMLSchema">
<element name="TradePriceRequest">
<complexType>
<all>
<element name="tickerSymbol" type="string"/>
</all>
</complexType>
</element>
<element name="TradePrice">
<complexType>
<all>
<element name="price" type="float"/>
</all>
</complexType>
</element>
</schema>
</types>
<message name="GetLastTradePriceInput">
<part name="body" element="xsd1:TradePriceRequest"/>
</message>
<message name="GetLastTradePriceOutput">
<part name="body" element="xsd1:TradePrice"/>
</message>
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>
<output message="tns:GetLastTradePriceOutput"/>
</operation>
</portType>
<service name="StockQuoteService">
<documentation>My first service</documentation>
<port name="StockQuotePort" binding="tns:StockQuoteBinding">
<soap:address location="http://example.com/stockquote"/>
</port>
</service>
</definitions>
Todos los detalles de WSDL se pueden consultar en la página web del W3C
(http://www.w3.org/TR/wsdl).
28
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
<?xml version=”1.0”?>
<libro>
<editorial>Oreilly</editorial>
<autores>
</autores>
<numero_paginas>96</numero_paginas>
</libro>
29
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Interesa recalcar aquí que los documentos XML sólo contienen información y estructura (ej. los datos
descriptivos de un libro), pero nunca instrucciones de formateo (ej. colores, tamaños, tipos de letra,
etc.). Esta es una de las diferencias clave entre XML y HTML.
La sintaxis de XML es compleja. No es el propósito del presente tema hacer una revisión exhaustiva
de la sintaxis de XML. Para ello, se recomienda al lector revisar las referencias especializadas (W3C;
http://www.w3.org/XML/).
Si un documento respeta las reglas de sintaxis XML se dice que está bien formado. Si además de
estar bien formado el documento es conforme a una DTD o un XML Schema (ver apartado siguiente),
se dice que el documento es válido.
Las DTDs son el mecanismo original de XML para definir lenguajes XML. Una DTD es un documento
de texto que especifica:
- Qué elementos pueden formar parte de un documento XML.
- Qué relación o estructura existe entre esos elementos.
- Qué atributos pueden tener los elementos.
- Qué posibles valores pueden tomar los atributos.
- Etc.
Un ejemplo de DTD, aplicable a documentos XML para el intercambio de información entre editores,
se puede observar a continuación (fichero “libro.dtd”):
Según esta DTD, para que un documento XML sea válido debe tener un elemento raíz llamado “libro”
que constará de:
30
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
- Un elemento “título”.
- Un elemento “editorial”.
- Un elemento “autores”, que a su vez constará de:
- Uno o más elementos “autor”.
- Un elemento “numero_paginas”.
Dicho de otro modo, una DTD no sólo permite definir lenguajes XML. También vale para comprobar si
un documento XML concreto responde o no a una definición, es decir, permite comprobar si un
documento es válido.
Para entender mejor el concepto de DTD y documento XML se puede establecer una analogía con
otros conceptos informáticos, como son los conceptos de clase y objeto de la Programación
Orientada Objetos. Así, una DTD sería equivalente a una clase (porque define un patrón) y un
documento XML sería equivalente a un objeto (porque es una instancia del patrón general).
Las DTDs pueden definirse dentro de los propios documentos XML o en ficheros aparte. Por cuestión
de claridad (separar el patrón de sus instancias), resulta preferible definir las DTDs aparte.
A su vez, para vincular un documento XML con su DTD existen dos posibilidades. Si la DTD se
encuentra disponible en el sistema de ficheros local, entonces la cabecera del documento XML
deberá ser algo así:
<?xml version=”1.0”?>
<!DOCTYPE libro SYSTEM “libro.dtd”>
...
Por otro lado, si la DTD se encuentra disponible en una URL de Internet, entonces la cabecera del
documento XML deberá ser algo así:
<?xml version=”1.0”?>
<!DOCTYPE libro PUBLIC “http://servidor/libro.dtd”>
...
Esta segunda opción (DTDs disponibles en Internet) resulta muy interesante, ya que permite
compartir entre toda la comunidad Internet definiciones comunes para documentos XML. Dicho de
otro modo, facilita la implantación de estándares XML.
Para conocer en detalle la sintaxis de las DTDs se recomienda al lector revisar las referencias
especializadas (http://www.w3.org/TR/2004/REC-xml11-20040204/; apartado 2.8 Prolog and Document
Type Declaration).
Los XML Schemas son la evolución de las DTDs. Sus objetivos son los mismos que los de las DTDs:
- Definir lenguajes XML.
- Validar documentos XML contra su definición.
La principal diferencia entre XML Schemas y DTDs es que los primeros tienen mayor potencia
descriptiva. Por este motivo, los XML Schemas se han impuesto a las DTDs, cayendo estas últimas
prácticamente en desuso actualmente. Otras diferencias importantes son:
31
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
- Los XML Schemas se describen en XML10, no necesitando una nueva sintaxis para
describirlas. Las DTDs tienen una sintaxis propia, como ya se vio.
- Los XML Schemas permiten definir nuevos tipos de datos. Las DTDs no lo permiten.
- Los XML Schemas soportan herencia entre tipos de datos. Las DTDs no lo soportan.
- Los XML Schemas están basados en namespaces11. Las DTDs no.
Como se puede apreciar, casi todo en los XML Schemas son ventajas. Su principal desventaja es que
resultan más complejos que las DTDs. Por este motivo, es previsible que en el futuro se siga
haciendo uso de las DTDs, aunque de forma limitada, para aquellas aplicaciones basadas en XML
que sean sencillas.
Aunque existen otras especificaciones, aquí se revisará la especificación estándar de XML Schemas,
que corresponde al W3C. La versión actual de este estándar es XML Schemas 1.1.
Como ya se ha dicho, un XML Schema es un documento XML. El elemento raíz de este documento
XML será <xs:schema> ... </xs:schema>12, ya que lo que hace un XML Schema es definir un
esquema o tipo de datos. Esto se puede observar en el siguiente ejemplo de XML Schema (fichero
“libro.xsd”), que es equivalente a la DTD del apartado anterior:
10
Resulta curioso. Los XML Schemas se utilizan para definir el contenido y estructura de documentos
XML válidos. Pero, a su vez, los XML Schemas son documentos XML.
11 Los namespaces son una extensión de la sintaxis básica de XML. Los namespaces permiten
extender el nombre de las etiquetas para pasar de un nombre sencillo (ej. <libro>) a un nombre con
prefijo (ej. <editorial:libro> o <biblioteca:libro>). Estos prefijos sirven para evitar potenciales conflictos
de nombres en situaciones en que se combinan documentos XML que provienen de distintas fuentes
(ej. documentos XML que provienen de editores de libros y de bibliotecas). Los XML Schemas hacen
un uso profuso de namespaces.
12
Obsérvese como, efectivamente, los XML Schemas utilizan namespaces. El prefijo para XML
Schemas es “xs”.
32
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="libro">
<xs:complexType>
<xs:sequence>
<xs:element name="autores">
<xs:complexType>
<xs:sequence>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Según este XML Schema, para que un documento XML sea válido debe tener un elemento raíz
llamado “libro” que constará de:
- Un elemento “título” de tipo “string”.
- Un elemento “editorial” de tipo “string”.
- Un elemento “autores”, que a su vez constará de:
- Uno o más elementos “autor”.
- Un elemento “numero_paginas” de tipo “integer”.
Finalmente, si se desea que el documento XML original esté referenciado al XML Schema anterior, y
no a la DTD, entonces habrá que modificarlo como se indica a continuación:
33
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
<?xml version="1.0"?>
<libro xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="libro.xsd">
<editorial>Oreilly</editorial>
<autores>
<autor>Robert Eckstein</autor>
<autor>Michel Casablanca</autor>
</autores>
<numero_paginas>96</numero_paginas>
</libro>
Si se desea conocer todas las posibilidades de XML Schemas (tipos simples predefinidos, definición
de tipos complejos, herencia de tipos, etc.) se deberá consultar las referencias especializadas
(http://www.w3.org/XML/Schema).
13 Hay otras situaciones, aparte del intercambio de datos entre dos aplicaciones, en las que puede
interesar procesar documentos XML. Por ejemplo, si una aplicación guarda datos o su información de
configuración en ficheros XML, entonces tendrá que leer del disco estos ficheros y procesar la
información XML.
34
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
La parte de la aplicación destino que se encarga de procesar los documentos XML se denomina
parser XML, y típicamente suele consistir en una librería implementada en un lenguaje de
programación (ej. Java). Parsers XML hay muchos, y para muchos lenguajes de programación
distintos. En el caso de Java, algunos de los parsers más utilizados son Xerces y Xalan, pero hay
muchos otros.
Pues bien, a la hora de procesar documentos XML el parser puede aplicar dos modelos de
funcionamiento principales:
- El modelo DOM (Document Object Model)
- El modelo SAX (Simple API for XML).
El modelo DOM (Document Object Model) consiste en que el parser procesa el documento XML
completo, elabora una representación en memoria equivalente (un árbol en memoria RAM), y ofrece
una serie de funciones para que el programador recorra y modifique el árbol. Esto se puede apreciar
en la siguiente Figura 10:
Por su parte, el modelo SAX (Simple API for XML) consiste en que el parser procesa el documento
XML poco a poco (elemento a elemento) y, según lo va procesando, genera eventos (invocaciones de
35
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
funciones) que permiten que la aplicación destino recupere la información del documento XML y
actúe en consecuencia. Esto se puede apreciar en la siguiente Figura 11:
En principio, no se puede decir que un modelo de procesamiento, DOM o SAX, sea más potente que
el otro. Ambos modelos tienen su campo de aplicación y, dependiendo de las circunstancias, se
deberá optar por un parser DOM o un parser SAX. Por supuesto, también hay librerías que
implementan los dos modelos.
La Tabla 1 se presenta las ventajas y desventajas de cada modelo:
Ventajas Desventajas
Posteriormente surgieron otras tecnologías similares como StAX, XOM y JDOM, todas ellas
basándose en conceptos de DOM y SAX, siendo muy similares a éstas en varios conceptos.
36
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
<?xml version="1.0"?>
<libro xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="libro.xsd">
<editorial>Oreilly</editorial>
<autores>
<autor>Robert Eckstein</autor>
<autor>Michel Casablanca</autor>
</autores>
<numero_paginas>96</numero_paginas>
</libro>
carecen completamente de instrucciones de formateo (ej. colores, tamaños, tipos de letra, etc.).
Pues bien, para dotar a XML de capacidades de formateo es para lo que surgió XSL (eXtensible
Stylesheet Language). XSL, que es un estándar del W3C, permite complementar la información de un
documento XML con una hoja de estilos (instrucciones de formateo). Por tanto, XSL es a XML lo que
CSS es a HTML.
Así las cosas, las funciones básicas de “información”, “validación” y “presentación” quedan repartidas
de la siguiente manera:
- Información: La información o datos se expresa mediante documentos XML.
- Validación: La validación se expresa mediante DTDs o XML Schemas.
- Presentación: La presentación se expresa mediante hojas de estilo XSL.
En realidad, XSL no es un único estándar, sino que es un conjunto de estándares relacionados con la
presentación de documentos XML. En este sentido, los estándares de XSL más destacados son:
- XSLT (XSL Transformations): Vale para transformar un documento XML original en otro
documento que resulte de la transformación del primero (selección, agrupamiento,
reordenación de elementos, etc.). Este documento transformado puede ser XML, HTML,
WML, texto plano, etc.
- XPath (XML Path Language): Vale para referenciar partes específicas de un documento XML.
Esta referenciación o selección de partes específicas de un documento XML es necesaria
tanto para su transformación como para su presentación.
- XSL-FO (XSL Formatting Objects): Vale, propiamente, para la presentación de un documento
XML.
37
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
A modo de ejemplo, la siguiente hoja de estilo XSLT valdría para transformar el documento XML
presentado anteriormente en una página HTML con información equivalente y que, además,
incorpora ya instrucciones de formateo:
<xsl:template match="libro">
<html>
<head>
<title>
<xsl:value-of select="titulo"></xsl:value-of>
</title>
</head>
<body>
<xsl:apply-templates></xsl:apply-templates>
</body>
</html>
</xsl:template>
<xsl:template match="titulo">
<h1>
<p>
Titulo: <xsl:apply-templates></xsl:apply-templates>
</p>
</h1>
</xsl:template>
<xsl:template match="editorial">
<p>
Editorial: <xsl:apply-templates></xsl:apply-templates>
</p>
</xsl:template>
<xsl:template match="autores">
<p>
Autores: <xsl:apply-templates></xsl:apply-templates>
</p>
</xsl:template>
<xsl:template match="autor">
<ul>
<xsl:apply-templates></xsl:apply-templates>
</ul>
</xsl:template>
<xsl:template match="numero_paginas">
<p>
Numero Paginas: <xsl:apply-templates></xsl:apply-templates>
</p>
</xsl:template>
</xsl:stylesheet>
Como se puede observar en el ejemplo anterior, una hoja de estilos XSLT es, en última instancia, un
documento XML. Es decir, así como CSS tenía una sintaxis propia, la sintaxis de XSL es XML14.
El elemento principal de una hoja de estilos XSLT es <xsl:stylesheet> ... </xsl:stylesheet>. A su vez,
una hoja de estilos está compuesta por una serie de templates o reglas (<xsl:template> ...
</xsl:template>). Estas reglas se hacen casar contra el documento XML original para generar el
documento transformado. Así, en el caso de aplicar esta hoja de estilos al documento XML anterior,
resultaría el siguiente documento HTML:
14Lo mismo ocurría con XML Schemas. Un esquema XML es, en última instancia, un documento
XML.
38
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
<html>
<head>
<title>XML Pocket Reference</title>
</head>
<body>
<h1>
<p>
Titulo: XML Pocket Referente
</p>
</h1>
<p>
Editorial: Oreilly</p>
<p>
Autores:
<ul>Robert Eckstein</ul>
<ul>Michel Casablanca</ul>
</p>
<p>
Numero Paginas: 96
</p>
</body>
</html>
La aplicación de hojas de estilo XSLT a documentos XML se hace mediante parsers XSLT. Un
ejemplo de parser XSLT es Xalan de Apache. Por norma general, los parsers XML son también
parsers XSLT.
XSLT dispone de templates predefinidos para múltiples funciones: para buscar elementos, para
procesamiento condicional, para iteraciones, para ordenaciones, para incluir o importar otras hojas de
estilo XSLT, etc. Todos los detalles de XSL y XSLT se pueden consultar en las referencias
especializadas (http://www.w3.org/Style/XSL/ y http://www.w3.org/TR/xslt).
15
El profesor Tanenbaum decía en tono irónico: “Lo bueno de los estándares es que hay muchos”. Algo así está ocurriendo con
XML. Se ha visto tan útil y se ha puesto tan de moda que los “estándares” en torno a XML, normalmente gramáticas para
aplicaciones concretas, crecen como setas, dando lugar a una “sopa de letras” imposible de recordar. Algunos de estos
estándares llegan a consolidarse, pero muchos otros caen en el olvido en un breve plazo de tiempo.
39
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
lenguaje XML que ha ganado la batalla de la estandarización en un sector tan complejo como
el financiero.
RSS es una gramática XML que permite a los sitios web que actualizan su información
frecuentemente (ej. periódicos on-line o weblogs) que compartan sus contenidos de forma
interoperable con otros sitios o aplicaciones. Esta compartición de contenidos es lo que hemos
comentado anteriormente que en terminología web se denomina sindicación.
Pero, ¿de dónde viene la idea de RSS y la sindicación de contenidos?
Si hacemos un poco de historia, cuando el sitio web de Netscape era uno de los sitios más visitados
de Internet, surgió la necesidad de hacer más personalizado el portal a sus usuarios, nuevo concepto
al que llamaron “My Netscape”.
En “My Netscape”, los usuarios podían elegir qué contenido poner en su sitio, seleccionando los
últimos titulares de noticias, las más recientes actualizaciones de archivos, y así otras diversas
opciones. Cada canal, nombre con el que bautizó Netscape a las fuentes de información disponibles,
también incluía información mostrando una imagen y una caja de búsqueda para buscar en el sitio del
canal. Los servidores de Netscape periódicamente bajaban y actualizaban cada canal desde el sitio
que lo proveía, de esta forma la información quedaba automáticamente a disposición del usuario.
En relación al formato que tenían los archivos formateados, Netscape consideró necesario establecer
una forma universal para la descripción del contenido, para lo que desarrolló el formato RDF Site
Summary, que usaba XML y RDF.
RSS 0.9 fue la primera versión liberada por Netscape en marzo de 1999, liberando en julio del mismo
año la versión 0.91 incorporando mejoras al formato llamado <scriptingNews>, creado por UserLand.
Al poco tiempo Netscape discontinuó el desarrollo del formato RSS pero UserLand lo siguió utilizando
en My Userland, y RSS se convirtió en Rich Site Summary para esta versión.
En agosto del 2000 un grupo llamado RSS-DEV Working Group propuso el RSS 1.0 en una lista de
discusión sobre RDF, a lo que UserLand contraatacó en el 2002 y liberó el RSS 2.0 ahora llamado
Really Simple Syndication.
Por ello, en realidad RSS no es una única gramática XML, sino que en los últimos tiempos ha habido
distintas especificaciones, elaboradas por distintas compañías, y todas ellas denominadas “RSS”16.
Como hemos visto, el acrónimo RSS tiene varios significados distintos, según la especificación de
que se trate:
16
Se observa aquí el ya citado carácter inestable de los (supuestos) “estándares” XML.
40
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
2.9.2 Atom
A raíz de la confusión de versiones de RSS netamente incompatibles unas con otras, en 2003, IBM,
Google y otras empresas de hosting crearon una nueva tecnología para sindicar contenido, que tras
varios cambios de nombre finalmente ha sido bautizado como Atom.
Para evitar los problemas de su predecesor, el formato de sindicación fue publicado en 2005 como un
“estándar propuesto” (proposed standard) del IETF en la RFC 4287, y en la actualidad ha surgido tras
él el protocolo Atom Publishing Protocol (APP) un protocolo bastante simple basado en HTTP
pensado para crear y actualizar recursos web, publicado en octubre de 2007 como “estándar
propuesto” (proposed standard) del IETF en la RFC 5023.
El éxito de Atom vino de la mano de la adopción de mismo por parte de Google y sus servicios, como
Blogger y Google News.
Un ejemplo del aspecto que tiene una fuente Atom se muestra a continuación.
41
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
En los últimos años el uso de la sindicación no ha continuado creciendo como se podía esperar. El
consumo de contenido digital se ha trasladado a otras herramientas tales como redes sociales o
herramientas como FlipBoard, todas ellas herramientas no basadas en la sindicación como se ha
descrito en el presente tema.
Sin embargo, eso no implica que sea una tecnología que no se utilice hoy en día, utilizándose en
diversos ámbitos como el denominado Broadcatching, que consiste en la combinación de un sistema
de sindicación y otro de descarga convencional o p2p para descargar material digital, tal y como se
realiza con los PodCasts, extendiéndose a otros ámbitos como el BitTorrent 17.
17
http://www.eweek.com/c/a/Messaging-and-Collaboration/BitTorrent-and-RSS-Create-Disruptive-Revolution
42
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
En España, el XBRL es introducido en 2001. Asumido el papel regulador por parte del Banco de
España, es éste quien lidera el impulso de la utilización de XBRL en España a través del a
Jurisdicción Española XBRL, en la que participan también organizaciones como la CNMV (uno de los
socios más destacados por parte de nuestro país), Registradores de España y AECA.
A nivel del sector público la Agencia Tributaria ha mostrado su interés en el uso de este estándar para
la tramitación telemática de impuestos como el Impuesto de Sociedades, la obtención de informes
financieros para estudio de inspecciones tributarias, etc.
No hay que olvidar que aunque originalmente estaba diseñado para reporting financiero, XBRL
permite integrar información fiscal y potencia la evolución natural de la representación XML aplicada
al entorno de los tributos, mejorando la integración de datos a nivel internacional, clarificando la
comunicación y reduciendo costes.
Los retos para la Agencia Tributaria se encuentran en la definición de taxonomía de impuestos como
el impuesto de sociedades, la integración de salidas XBRL de los sistemas de información de las
empresas hacia la AEAT así como la integración de la información pública de la CNMV y del Banco
de España, todo ello para disminuir la carga fiscal de los contribuyentes para el cumplimiento
voluntario de sus obligaciones.
El impulso definitivo a XBRL, no obstante, vino de la mano de la moción por la que el Senado “insta al
Gobierno a impulsar el estándar abierto XBRL”, moción aprobada el 20 de junio de 2006 y que se
puede consultar en la siguiente dirección. Esta moción solicitaba al Gobierno su implicación en el
liderazgo, estandarización y homogeneización de la implantación de XBRL. El Senado consideró
especialmente importante la adopción de un estándar abierto que pudiera ser utilizado por más de
8.000 ayuntamientos, así como 17 comunidades autónomas, todas las provincias, consejos y cabildos
insulares, varios ministerios y otros organismos con competencias en el sistema financiero español.
La implantación de la taxonomía LENLOC, basada en el estándar XBRL, responde al concepto de
cooperación en materia de interoperabilidad de sistemas y aplicaciones, que propugnan la ley
39/2015 y la ley 40/2015, por cuanto garantiza su inmediata adaptabilidad a diferentes sistemas de
información. El archivo o instancia XBRL-LENLOC es generado automáticamente a partir de las
distintas bases de datos contables de las corporaciones locales, y permite una explotación
automatizada de su contenido desde cualquier sistema18.
El estándar XBRL permite a la Secretaría General de Coordinación Autonómica y Local (SGCAL)
mejorar la transparencia en la rendición de los datos presupuestarios del Sector Público Local,
ofreciendo a todas las entidades locales la posibilidad de rendir sus datos presupuestarios en formato
XBRL de acuerdo con las taxonomías LENLOC, PENLOC y TRIMLOC definidas por la propia
SGCAL. Se puede encontrar más información en el siguiente enlace: http://www.minhap.gob.es/es-
ES/Areas%20Tematicas/Administracion%20Electronica/OVEELL/Paginas/LENLOC.aspx
18
http://administracionelectronica.gob.es/pae_Home/dms/pae_Home/documentos/Estrategias/pae_Tecn
imap/pae_TECNIMAP-2010/pae_COM_2010-Eficiencia_y_sostenibilidad/10eficiencia.pdf
43
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
No en vano, más del 80% de las empresas españolas realizan su depósito anual de cuentas usando
este estándar y las empresas reguladas por la CNMV o por el Banco de España realizan sus
declaraciones anuales usando la especificación, por poner ejemplos significativos entre otros en uso
actualmente19.
Podemos ver algunos casos de éxito nacionales de esta tecnología en la sede española de los
promotores del estándar20.
19 http://www.xbrl.es/es/xbrl-una-perspectiva-de-10-anos/
20 http://www.xbrl.es/es/socios/casos-de-exito/
21 Se puede encontrar más información en el Centro de Transferencia Tecnológica (CTT)
http://administracionelectronica.gob.es/es/ctt/eni
44
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
http://administracionelectronica.gob.es/pae_Home/pae_Estrategias/pae_Interoperabilidad_Inicio/pae_
Normas_tecnicas_de_interoperabilidad.html#EXPEDIENTEELECTRONICO
45
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
3.1.1 Historia
El primer navegador web fue desarrollado por Tim Berners-Lee, en la CERN, a finales de 1990 y
principios de 1991; el navegador web llamado WorldWideWeb era bastante sofisticado y gráfico, pero
solo funcionaba en estaciones NeXT.
Posteriormente surgió el navegador Mosaic, que funcionaba inicialmente en entornos Unix sobre
XFree86 (X11), fue el primero que se extendió debido a que pronto el National Center for
Supercomputing Applications (NCSA) publicó versiones para Windows y Macintosh.
Sin embargo, Netscape Navigator al poco tiempo entró en el mercado y rápidamente superó en
capacidades y velocidad al Mosaic. Este navegador tuvo la ventaja de funcionar en casi todos los
sistemas Unix, y también en entornos Windows.
Internet Explorer (anteriormente Spyglass Mosaic) fue la apuesta tardía de Microsoft para entrar en el
mercado, pero consiguió desbancar a Netscape Navigator entre los usuarios de Windows, debido a la
integración del navegador con el sistema operativo y al hecho de que era gratuito, mientras que
Netscape tenía costo, llegando a poseer cerca del 95% de la cuota de mercado. Netscape
Communications Corporation liberó el código fuente de su navegador, naciendo así el proyecto
Mozilla.
Finalmente, Mozilla (Mozilla Application Suite) fue reescrito desde cero tras decidirse a desarrollar y
usar como base un nuevo conjunto de widgets multiplataforma basado en Extensible Markup
Language (XML) llamado XUL y esto hizo que tardara bastante más en aparecer de lo previsto
inicialmente, apareciendo una versión 1.0 de gran calidad y para muchísimas plataformas a la vez el
5 de junio de 2002.
El 7 de enero de 2003, Apple lanzó al mercado el navegador web Safari. Este navegador se hace con
casi la totalidad del mercado de los equipos Mac, debido a su velocidad y gran cantidad de
actualizaciones. Asimismo, Safari también entra al mercado del sistema operativo Windows.
A finales de 2004 aparece en el mercado Mozilla Firefox, una rama de desarrollo de Mozilla que
pretende hacerse con parte del mercado de Internet Explorer. Se trata de un navegador más ligero
que su hermano mayor.
El 2 de septiembre de 2008, Google Chrome aparece en el mercado. Es el navegador web
desarrollado por Google y compilado con base en componentes de código abierto como el motor de
renderizado de WebKit y su estructura de desarrollo de aplicaciones (framework). Está disponible
gratuitamente bajo condiciones de servicio específicas. El nombre del navegador deriva del término
usado para el marco de la interfaz gráfica de usuario ("chrome"). En diciembre de 2011, Chrome
superó a Internet Explorer 8.0 como el navegador más utilizado a nivel mundial.
3.1.2 Conceptos
Aunque se han introducido ya al comienzo del tema o pueden resultar conocidos, vamos a recordar
en este apartado alguno de los conceptos esenciales que es necesario tener claros para continuar.
46
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Un navegador web es una aplicación que permite el acceso a internet, interpreta la información de
archivos etiquetados en HTML y los presenta en pantalla según las directrices de presentación
codificadas en una hoja de estilos CSS (del inglés Cascading Style Sheet, u hoja de estilo en
cascada), permitiéndonos interactuar con su contenido.
Los documentos presentados en el navegador denominados páginas web, poseen hipervínculos que
permiten enlazar de un documento a otro. Se denomina navegar al acto de seguir los enlaces de una
página a otra.
Una URL es la cadena de caracteres con la que se asigna una dirección única a todos y cada uno de
los recursos de información disponibles en internet. Para entendernos, el URL es la dirección de
internet, que permite al navegador encontrar ese recurso en un servidor determinado y mostrarlo de
forma adecuada.
El protocolo DNS asigna nombres a direcciones IP (es lo que permite encontrar un servidor
tecleando un nombre).
Un puerto es una interfaz a través de la cual pueden enviarse y recibirse datos para comunicarse con
otro programa o aplicación a través de una red telemática. Podemos comprenderlo más gráficamente
si pensamos en un puerto como en una pasarela, que puede estar abierta o cerrada, por la que
circulan los datos.
Además del protocolo HTTP, la mayoría de navegadores soporta otros protocolos adicionales, como
FTP (File Transfer Protocol, o Protocolo de transferencia de ficheros) o HTTPS (Hypertext Transfer
Protocol Secure, o Protocolo seguro de Transferencia de hipertexto).
47
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Todo este conjunto de protocolos de aplicación se apoyan en el TCP (Transmission Control Protocol,
o Protocolo de Control de Transmisión), que es el responsable de crear la conexión entre el
ordenador del usuario y el servidor y de garantizar que los datos serán entregados en destino sin
errores y en un orden idéntico al que fueron transmitidos. También gestiona los distintos puertos de
comunicación de cada máquina.
Cada máquina conectada a internet tiene una dirección IP (Internet Protocol, o Protocolo de Internet)
única que la identifica. Cuando escribimos una dirección web o URL (Uniform Resource Locator, o
Localizador uniforme de recursos), otras máquinas denominadas servidores DNS (Domain Name
System, o Sistema de Nombres de Dominio) traducen o asignan el nombre de dominio que hemos
escrito (por ejemplo, www.inap.es) a su dirección IP (que en el caso del INAP es 185.73.174.129), lo
que permite al navegador encontrar el servidor de destino y pedirle el recurso solicitado.
El servidor proporcionará la información al navegador, que la descargará y renderizará de acuerdo
con las directrices de aspecto y formato contenidas en una hoja de estilo CSS (Cascade Style Sheet,
u hoja de estilos en cascada).
El ciclo de solicitud-respuesta HTTP que permite a la máquina del usuario visualizar el contenido
almacenado en un servidor remoto se puede resumir en los siguientes pasos:
1. Escribimos la URL en la barra de direcciones del navegador.
2. Un servidor de nombres DNS busca la página que hemos escrito, averigua su dirección IP y
la devuelve al navegador.
3. El ordenador o dispositivo del usuario envía una solicitud al servidor identificado por la
dirección IP y espera respuesta.
a. Si todo va bien, el servidor envía un breve mensaje de retorno al navegador
indicando que todo está correcto (transacciones HTTP), seguido del contenido de la
propia página web.
b. Si hay problemas, el servidor envía al navegador un código de error HTTP que
identifica la naturaleza del problema (el más conocido es el error 404: "no se
encuentra la página")
En la Figura 13 se muestra los principales módulos que comúnmente tienen un navegador actual y
cuál es el intercambio de mensajes habitual entre ellos.
48
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
A continuación se analizarán cada uno los elementos más importantes de un navegador entrando en
algunos detalles relevantes de los mismos.
En los navegadores, como en cualquier aplicación de software, la interfaz gráfica de usuario o GUI
(del inglés Graphic User Interface) es el medio por el cual interactuamos con la aplicación
Su función es que podamos desarrollar la comunicación con la aplicación de la forma más fácil y
cómoda, y que las funciones más usadas tengan acceso preferente.
Cada navegador tiene su propia interfaz de usuario, con distinta organización de menús y submenús,
distinta forma de representar las pantallas, distinta organización de las funcionalidades.
1. Webkit
WebKit, es un motor de renderizado de código abierto para navegadores web, desarrollado por Apple
sobre la base del motor de renderizado KHTML del navegador Konqueror (perteneciente al proyecto
KDE: una comunidad que desarolla software libre).
Webkit incluye dos frameworks o procesadores de más bajo nivel:
• WebCore, que es el analizador sintáctico y motor de renderizado HTML
• JavaScriptCore: intérprete de JavaScript basado en KJS (KDE's JavaScript, o intérprete de
JavaScript del proyeto KDE)
Entre sus funciones está la de gestionar con el servidor web la obtención y renderización de las
páginas web, descargar archivos y administrar plugins.
WebKit es el layout engine de Safari. Lo ha sido también de Chrome, pero en abril de 2013 Google
anunció que dejaba de colaborar en el proyecto WebKit para desarrollar su propio motor. Webkit está
presente también en las versiones móviles de Safari en iOS (iPad, iPhone), y en el navegador nativo
de Android, por lo que WebKit es el motor de renderizado líder absoluto entre los navegadores
modernos, tanto de sobremesa como móviles.
Por su parte, Opera abandonó en febrero de 2013 el desarrollo de su motor Presto y anunció que
pasaría a usar WebKit.
Actualmente, Webkit es el motor de renderizado que soporta mayor número de las características de
HTML5 y CSS3.
2. Gecko
Es un motor de renderizado de código abierto, diseñado para soportar los estándares web y
originalmente desarrollado por Netscape, que posteriormente lo cedió a la comunidad, y actualmente
lo gestiona la Fundación Mozilla. Escrito en el lenguaje de programación C++, es el motor que utiliza,
entre otros, del navegador Firefox.
Gecko se implementa como una plataforma para aplicaciones multiplataforma (que pueden correr en
cualquier sistema operativo), es decir, que permiten la ejecución de aplicaciones sobre su engine
(motor), cuya interfaz de usuario viene definida por el lenguaje XUL (XML-based User Interface
49
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Language, o lenguaje basado en XML para interfaz de usuario), mientras que el comportamiento y la
apariencia de las aplicaciones XUL viene definido por el lenguaje XBL (eXtensible Bindings Languaje,
o Lenguaje extensible de asociaciones). Las extensiones de Firefox, por ejemplo, tienen una interfaz
definida por XUL mientras que su comportamiento es manejado por XBL.
3. Trident y Tasman
Trident es el motor de renderizado usado por Microsoft Internet Explorer para windows a partir de su
version 4 (en octubre de 1997). Implementa una interfaz COM (Component Object Model, o Modelo
de Objeto de Componente) que soporta toda una serie de tecnologías como OLE, ActiveX, COM+ y
DCOM.
Tasman es el nombre del motor de renderizado usado por Internet Explorer para Mac OS X, aunque
el desarrollo de IE para Mac fue cancelado en 2001.
4. Blink
Comenzó a desarrollarse como una bifurcación (o fork) del componente WebCore del motor WebKit
en abril de 2013, como parte del proyecto Chromium, de la mano de Google y Opera.
Google anunció que cesaba en su apoyo al proyecto WebKit original para centrarse en Blink, que en
su actual estado de desarrollo (verano de 2013) permanece relativamente similar a WebCore. Google
justifico el cambio por su intención de optimizar el código base de Chrome/Chromium y orientar su
desarrollo exclusivamente a la web.
5. Presto
Ha sido el motor de renderizado del navegador Opera, lanzado en febrero de 2003 con la versión 7.0
del browser. Presto destaca por su soporte de DOM (Documents Objetc Model, o Modelo de Objetos
de Documento), DHTML (HTML Dinámico) y CSS2 (Hojas de estilo en Cascada).
Opera ha destacado desde sus inicios por su amplio soporte multiplataforma: windows, Mac OS X,
Linux, Symbian (el sistema operativo de los primeros smartphones de Nokia) o J2ME/JME (Java
Micro Edition, un subconjunto de la plataforma Java para dispositivos con recursos restringidos, y
muy empleado en los teléfonos móviles hace unos años).
Opera anunció en 2013 que dejaba Presto por WebKit, tanto en las versiones móviles como en las de
escritorio, y que en futuras versiones estudiará el uso de Blink.
Un motor JavaScript (JavaScript Engine) es la parte del navegador que interpreta y ejecuta el código
escrito en el lenguaje de programación JavaScript.
Los motores JavaScript son exclusivos de cada navegador, y constituyen otro elemento fundamental
para la velocidad a la que cada navegador es capaz de interpretar las instrucciones y realizar el
renderizado de la página a cargar. En resumen, la combinación motor de renderizado + motor de
JavaScript es la que determina la velocidad a la que cada navegador carga las páginas web.
Los motores de JavaScript adquirieron importancia a raíz de la aparición de Google Chrome en 2008,
que literalmente barrió a la competencia en velocidad de ejecución. Pronto Mozilla y WebKit
reaccionaron, entablándose una auténtica carrera.
Los motores JavaScript evolucionan tan rápido que es difícil seguir su actual estado de desarrollo. El
motor usado por Google es el motor de código abierto V8, Mozilla sigue evolucionando su Monkey,
Microsoft potencia Chakra para su Internet Explorer, mientras que en Safari/Apple evolucionan su
misterioso motor Nitro.
50
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
3.1.4.4 Complementos
El protocolo HTTPS (Hypertext Transfer Protocol Secure, o protocolo HTTP seguro) garantiza que las
sesiones de navegación están cifradas, por lo que la transferencia de datos es segura.
Es posible saber que te encuentras en una sesión de navegación segura cuando, en la barra de
navegación, aparecen las siglas https.
Resulta fundamental que te encuentres dentro de una sesión segura cuando introduzcas o manejes
datos sensibles, como datos bancarios, fiscales, administrativos o de compras.
Este tema se analiza más profundamente en otro tema, pero no está de más mencionarlo aquí justo
antes de hablar de la navegación privada.
Con la navegación privada, el navegador no deja en el ordenador ningún rastro de las páginas que
visita (cookies, caché e historial). Sin embargo, hay que tener en cuenta que este tipo de navegación
no oculta la IP ni proporciona navegación anónima real.
La navegación privada resulta útil en algunos de estos casos:
• Para abrir sesiones paralelas de una misma aplicación desde un mismo ordenador: por ejemplo,
podemos tener varias cuentas de GMail abiertas, en lugar de tener que cerrar una sesión y abrir
otra, o abrir sesión en otro navegador.
• Para mantener la privacidad de cada usuario en ordenadores compartidos y, evitar, por ejemplo,
que datos personales o privados queden expuestos inadvertidamente (formularios, claves, etc).
• Para visitar páginas sospechosas o que generen poca confianza: así se evita que se pueda
instalar 'malware' (aplicaciones dañinas) por medio de cookies.
51
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Si bien cada navegador realiza esta función a su manera, en términos generales, la navegación
privada implica que el navegador:
• Elimina las cookies tras cerrar la sesión.
• No se guarda ningún tipo de historial o formularios de auto-completado.
• No se guardan las contraseñas.
• Se borra la caché automáticamente al salir.
De igual modo, es preciso recordar lo que no hace:
• No proporciona conexiones seguras o cifradas.
• No oculta tu dirección IP.
• No evita que las páginas de Internet almacenen información sobre ti.
• No impide que tu navegación sea supervisada por el administrador de la red.
• No supone un anonimato total (aplicaciones de terceros como Flash pueden guardar sus
propias cookies, etcétera).
Como se ha comentado, aún cuando naveguemos en modo privado, seguimos siendo identificables
en la red: nuestra IP es visible y a partir de ahí se puede obtener nuestra posición geográfica
aproximada, nuestro proveedor de servicio o incluso el nombre de la empresa en que trabajamos (si
disponemos de una IP institucional).
La única forma de lograr un anonimato casi completo cuando navegamos es usar una conexión
segura a una máquina denominada servidor http proxy. Un servidor http proxy es un ordenador que
funciona como una pasarela a través de la cual se filtran nuestras peticiones de navegación por la
web.
En la Figura 14 se muestra la función de intermediario que realiza el servidor proxy y como oculta la
dirección IP a los servicios que se usen de la Web.
De esta forma, si queremos conectarnos a una página web, primero haremos la petición al servidor
proxy, y será esta máquina a su vez la que haga la petición de carga a la página a la que queramos
conectarnos, quedando nuestro ordenador oculto a ojos del servidor de esa página web, pues la IP
que le consta a ese servidor web es la del proxy.
Cuando usamos este mecanismo varias veces seguidas de forma encadenada a través de varios
servidores proxy, es casi imposible rastrear la IP original de nuestro ordenador, con lo que nuestra
navegación es totalmente anónima.
TOR es el sistema de navegación anónima más popular. Se trata de una red gratuita gracias a la cual
se puede navegar, chatear o descargar archivos de forma totalmente anónima. Pero TOR también es
un conjunto de programas que posibilita el acceso a esta red.
52
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Para usar TOR, debemos descargar la aplicación e instalarla. Existen también complementos para
Firefox que facilitan la navegación anónima con TOR, así como versiones portables de la propia
aplicación (Portable TOR), o basadas en el navegador Opera (Opera-TOR).
Además de TOR, existe una red de servidores proxy no cifrados y túneles VPN anónimos a través de
los cuales poder hacer nuestra conexión, pero la fiabilidad es variable.
I2P y Freenet son redes P2P privadas, que sirven a comunidades anónimas a través de los cuales se
intercambian grandes volúmenes de datos. La red I2P es una red dentro de Internet, de tal forma que
sus comunicaciones son invisibles para el resto de usuarios de Internet.
El mundo de los navegadores es muy variado y las cuotas de uso están muy repartidas incluso entre
las distintas versiones de un mismo navegador como se puede ver en la siguiente Figura 15:
Abstrayéndonos de las versiones, los principales navegadores con mayor peso y a los que hay que
prestar atención a día de hoy son los que se analizan en los siguientes apartados.
Google Chrome
Chrome es el nombre del navegador web desarrollado por Google y que salió a la luz en septiembre
del 2008. Está disponible gratuitamente y cuenta con más de 750 millones de usuarios.
En la actualidad es líder del mercado, y tiene versiones disponibles para multitud de plataformas:
windows, OS X, GNU/Linux (chromium), Android e iOS.
Internet Explorer
El antaño todopoderoso navegador de Microsoft, ha caído a cerca de un cuarto de cuota de mercado.
Lastrado por sus problemas de seguridad, rendimiento e incumplimiento de estándares, mantiene una
buena posición por la extensa base de usuarios de windows.
53
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Microsoft Edge
Es el nuevo navegador de Microsoft que busca sustituir a Internet Explorer y que viene por defecto en
con Windows 10. Este navegador se ha construido de cero sin depender de Internet Explorer para ser
un navegador ligero, rápido y potente. Usa el motor de renderizado EdgeHTML que es una
bifurcación del motor Trident usado por Internet Explorer.
Este nuevo navegador está en proceso de adaptarse a los nuevos estándares y a algunas
tecnologías como ActiveX, y se considera que aun tiene que evolucionar como producto.
Firefox
Mozilla Firefox (llamado simplemente Firefox) es un navegador web libre y de código abierto
desarrollado para Linux, Android, IOS, OS X y Microsoft Windows coordinado por la Corporación
Mozilla y la Fundación Mozilla. Usa el motor Gecko para renderizar páginas web, el cual implementa
actuales y futuros estándares web.
Safari
Safari es el navegador propietario desarrollado por Apple inicialmente para OS X (es su navegador
por defecto), iOS (el sistema operativo móvil de Apple, presente en los iPhones, iPads e iPod Touch).
Para windows dispone de una versión para lo que no se ofrece soporte desde el 2012.
Opera
Opera no solo es un navegador web, sino que es toda una suite (conjunto de aplicaciones) de internet
que integra funcionalidades como la del propio navegador, un gestor de correo electrónico, gestor de
contactos, lector RSS (sindicación de contenidos), cliente para charlas IRC e incluso un cliente
BitTorrent. Pese a su posición marginal en el mercado, Opera fue pionero en la incorporación de
características posteriormente adoptadas por todos los navegadores modernos, como las pestañas o
la búsqueda integrada.
Posee funcionalidades muy avanzadas en seguridad, como la protección integrada contra phishing
(robo de información confidencial) y malware, y el borrado sencillo de datos privados.
Una de las características definitorias de Opera ha sido, desde sus inicios, la variedad de sistemas
operativos y plataformas en las que funciona: MS Windows, GNU/Linux, Mac OS X, FreeBSD,
Windows Mobile, Blackberry OS, Maemo, Symbian, Android, iOS y otros sistemas operativos móviles
con soporte de Java ME (Java Micro Edition, para dispositivos con recursos restringidos).
54
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
El mercado de los navegadores se ha ido fragmentando debido a que cada navegador saca nuevas
versiones cada vez más a menudo (tanto para PC de escritorio como para móviles y tabletas) y las
versiones antiguas se resisten a desaparecer. A mediados de 2017, podemos distinguir:
• Un navegador dominante, Google Chrome, que se acerca al 60% del mercado.
• Dos navegadores secundarios (IE11 y Safari), que se reparten el 20% del mercado.
• Dos navegadores minoritarios (Edge y Firefox), que se reparten poco más del 10% del
mercado.
o Microsoft Edge no está consiguiendo sustituir a Internet Explorer, entre otros motivos
porque sólo está disponible en Windows 10.
o Firefox está reduciendo su uso desde 2010.
• Tres navegadores en vías de desaparición (IE8, IE9 e IE10).
o Internet Explorer 8 sigue utilizándose porque en Windows XP no se pueden instalar
versiones posteriores de IE, pero está desapareciendo a la vez que ese sistema
operativo.
o Internet Explorer 9, al no estar disponible para Windows XP, creció más lentamente
que las versiones anteriores. Llegó a ser el segundo navegador más utilizado a
finales de 2012, pero a partir de la publicación de IE10 en febrero de 2013 su uso ha
ido reduciéndose.
o Internet Explorer 10 se publicó inicialmente sólo para Windows 8, por lo que su
implantación fue mucho más lenta que la de versiones anteriores. A partir de febrero
de 2013 estuvo disponible para Windows 7, lo que aceleró su implantación. Llegó a
ser el segundo navegador más utilizado a mediados de 2013, pero a partir de la
publicación de IE11 en octubre de 2013 su uso ha ido reduciéndose y prácticamente
ha desaparecido.
• Dos navegadores ya desaparecidos (IE6 y IE7):
o Internet Explorer 6 fue el navegador hegemónico entre 2002 y 2009. En 2012 era ya
irrelevante, aunque seguía usándose en China. Desde mediados de 2015 se puede
considerar desaparecido.
55
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
o Internet Explorer 7 fue durante unos meses en 2009 el navegador más utilizado. A
partir de la publicación de IE8 en marzo de 2009 su uso se redujo rápidamente. A
finales de 2012 era ya irrelevante. Desde principios de 2015 se puede considerar
desaparecido.
En cualquier caso, el crecimiento de Google Chrome parece imparable y si se mantiene esta
tendencia la única duda es saber qué porcentaje del mercado acabará acaparando.
Los estándares web son un conjunto de recomendaciones emitidas por el World Wide Web
Consortium (W3C) y otras organizaciones internacionales acerca de cómo crear e interpretar
documentos basados en la web.
Estándares web es un término muy general utilizado para referirse a estándares y otras
especificaciones técnicas que definen y describen aspectos de la World Wide Web. En años
recientes, el término ha sido frecuentemente asociado con la tendencia de aprobar un conjunto de
mejores prácticas estandarizadas para construir sitios web y a la filosofía del diseño y desarrollo web
que incluye esos métodos.
Su objetivo es que los sitios web sean accesibles a más personas (incluidas aquellas con algún tipo
de discapacidad), en más lenguajes y que se interpreten correctamente en cualquier dispositivo de
acceso a internet.
En esencia, integran a un conjunto de tecnologías orientadas a beneficiar al mayor número posible de
usuarios, asegurando la corrección, vigencia y perdurabilidad de todo documento web.
Los sitios que cumplen con los estándares web:
• Son más accesibles, permitiendo a personas con discapacidad acceder a su contenido.
• Son compatibles con todos los navegadores actuales, y lo serán con sus versiones futuras.
• Se visualizan correctamente en cualquier dispositivo de acceso: PCs, tablets o smartphones
• Son más fáciles de mantener y actualizar.
• Tienen una codificación más simple.
Los estándares web persiguen que el contenido de los sitios se visualice de la misma manera
independientemente del navegador web con que accedamos al sitio, e incluso del dispositivo.
En la Figura 17 se muestran los ámbitos en los que se mueven los estándares web.
56
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
3.2.3.1.1 Acid1
Acid1, originalmente llamado Box Acid Test, es una página de prueba para los navegadores web. Se
desarrolló en octubre de 1998 y fue importante para establecer una base de referencia para la
interoperabilidad de los primeros navegadores web, especialmente para las especificaciones
Cascading Style Sheets 1.0.
Al igual que con las pruebas de ácido de oro, que producen una rápida y evidente de evaluación de la
calidad de una pieza de metal, la web de las pruebas de ácido fue diseñadas para producir una
indicación clara del cumplimento de las normas de un navegador web.
Los tests de Acid1 ponen a prueba muchas características en una sola página a fin de ser comparada
contra una imagen de referencia. Actualmente casi todos los navegadores pasan la prueba.
Acid1 ha servido de ejemplo para Acid2 y Acid3.
3.2.3.1.2 Acid2
Acid2 es una página de prueba publicada y promovida por el Web Standards Project para detectar
fallos en motores de renderizado usados por los navegadores para mostrar páginas web. Fue
desarrollada en el espíritu de Acid1, una prueba relativamente estrecho de conformidad con el
estándar Cascading Style Sheets 1.0 (CSS1), y fue lanzada el 13 de abril de 2005. Como con Acid1,
una aplicación supera la prueba si el objeto en que se muestra la página de prueba coincide con una
imagen de referencia.
Acid2 prueba aspectos de marcas HTML, estilo CSS, imágenes PNG, y data URIs. La página de
prueba de Acid2 se muestra correctamente en cualquier aplicación que cumple con las
especificaciones del World Wide Web Consortium y Internet Engineering Task Force que pertenecen
a estas tecnologías.
Si el navegador cumple correctamente los estándares HTML y CSS 2.0, entonces se debe poder ver
una cara sonriente. A pesar de lo simple del dibujo, cada línea está codificada de forma tal que
dependa de la exacta implementación de varias exigencias que imponen los estándares.
Aunque en la época del lanzamiento de Acid2 ningún navegador pasaba la prueba, Acid2 fue
diseñada con Microsoft Internet Explorer en mente. Los creadores de Acid2 lamentaban que Internet
Explorer no cumplía con los estándares web y a causa de esto Internet Explorer mostraba las páginas
web de forma diferente a otros navegadores. Cuando se encuentran tales discrepancias entre
navegadores los desarrolladores web gastan tiempo en ajustar sus páginas web para que las páginas
se muestren correctamente en navegadores diferentes. Acid2 representaba un desafío a Microsoft de
poner Internet Explorer en línea con otros navegadores, haciendo más fácil diseñar páginas web que
funcionen correctamente en cualquier navegador web.
En la Figura 18 se puede ver la imagen de referencia de Acid2. En la prueba real, la nariz se vuelve
azul cuando el cursor está sobre ella.
El 31 de octubre de 2005, Safari fue el primer navegador que supera Acid2. Opera, Konqueror,
Firefox, y otros siguieron. Con el lanzamiento de Internet Explorer 8 en 19 marzo de 2009, las
58
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
versiones más recientes de todos los navegadores web mayores ahora superan la prueba. Acid 2 fue
sucedido por test Acid3.
3.2.3.1.3 Acid3
Acid3 es un sitio hecho por WaSP que pone a prueba los navegadores con los estándares web,
especialmente los de DOM y ECMAScript. Desarrollado en abril de 2007 y fue lanzado el 3 de marzo
de 2008. Acid2 se concentraba principalmente en CSS, en cambio Acid3 también se enfoca en
tecnologías muy usadas en la Web 2.0, tales como ECMAScript y DOM Nivel 2. Algunas sub-pruebas
también se encargan del lenguaje SVG, XML y del esquema data:URI. Sólo elementos de la
especificaciones del 2004 son incluidos.
Cuando la prueba es satisfactoria, Acid3 muestra un porcentaje que gradualmente crece y además
muestra rectángulos coloridos en el fondo. El porcentaje mostrado está basado en el número de sub-
pruebas pasadas. Además, el navegador tiene que renderizar la página exactamente como la página
de referencia es renderizada en este mismo navegador. A diferencia de la prueba Acid2, la referencia
no es un archivo de mapa bits, permitiendo algunas diferencias en el renderizado de las fuentes.
En la Figura 19 vemos como es en la actualidad el resultado de test Acid3:
La parte principal de Acid3 está escrita en ECMAScript (JavaScript), y consiste de 100 subpruebas
divididas en seis grupos, llamados "buckets", más cuatro pruebas especiales (0, 97, 98 y 99).
• Bucket 1: DOM Traversal, DOM Range, HTTP
• Bucket 2: DOM2 Core y DOM2 Events
• Bucket 3: DOM2 Views, DOM2 Style, Selectores de CSS3 y Media Queries
• Bucket 4: Comportamiento de tablas HTML y formularios cuando son manipulados por
scripts y DOM2 HTML
• Bucket 5: Pruebas de la competición Acid3, (SVG, HTML, SMIL, Unicode...)
• Bucket 6: ECMAScript
El único requerimiento de la prueba es que el navegador tenga la configuración de forma
predeterminada. El renderizado final debe mostrar un 100/100 y además no sólo debe ser idéntico al
de referencia sino que además la animación debe ser fluida y no debe tardar más de 33
milisegundos.
El cumplimiento de estándares es un aspecto complicado de medir ya que los tests suelen probar si
un navegador soporta o no una determinada característica, no si lo hace correctamente y de acuerdo
a las especificaciones.
Respecto al test Acid3 a día de hoy es superado sin problemas por los cuatro navegadores más
destacados, por lo que se recomienda realizar test adicionales de CSS y HTML5 para aporta más
información sobre el estado de madurez de los navegadores.
59
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
En la Figura 20 se compara el resultado obtenido por los tres principales navegadores en el test Acid3
y en otros dos test más como son HTML5Test y CSS3Test.
En las siguientes figuras, Figura 21, Figura 22 y Figura 23, se amplía las estadísticas de cumplimiento
mostrando unas graficas que muestran la evolución de cumplimiento de HTML5 para dispositivos de
escritorio, tablet y móviles obtenido de la web html5test.
60
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
3.2.4 El Cross-browsing
61
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
Cuando se aborda un proyecto de creación de un nuevo sitio web se deben seguir todos los
estándares que se han visto en este tema: HTML5, CSS3 y ECMAScript, de esta manera se simplifica
la compatibilidad ya que los navegadores modernos también siguen en su mayoría estos estándares.
Los pasos a seguir en caso de detectar incompatibilidad con algún navegador deben ser:
1. Averiguar el motivo por el que no funciona. Es decir, quien no cumple el estándar la
aplicación o el navegador.
2. Analizar la conveniencia de dar soporte a ese navegador o versión.
3. En caso de ser necesario busca una solución general que cubra el problema en todos los
caso.
4. Solo en caso de no ser posible una solución general se debe implementar una solución
particular para un navegador o versión específicos.
Es recomendable evitar siempre que sea posible las soluciones específicas de un navegador ya que
dificultan enormemente el mantenimiento y la evolución de las soluciones web y puede traer
problemas inesperados con los cambios de versión.
La regla que se debe aplicar es que el 90% de los problemas cross browsing pueden resolverse con
una solución, menos del 9% necesitan dos soluciones y solamente casos muy extremos de menos
del 1% necesitan más de dos soluciones.
No confundir este concepto con el Cross-site scripting o XSS, que es un tipo de inseguridad
informática o agujero de seguridad típico de las aplicaciones Web, que permite a una tercera persona
inyectar en páginas web visitadas por el usuario código JavaScript o en otro lenguaje similar (ej:
VBScript), evitando medidas de control como la política del mismo origen.
62
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
CONTENIDO
4 Conclusiones
A lo largo del tema se han descrito los lenguajes y herramientas principales para la utilización de
redes globales, centrándonos en HTML y XML. Por otro lado, se han analizado los navegadores web
y los elementos de compatibilidad con estándares.
Ha transcurrido mucho tiempo (desde la perspectiva de la evolución de la tecnología) desde los
inicios de HTML. Durante los más de 20 años de vida de este lenguaje se ha creado un ecosistema
que ha ido evolucionando a la vez que lo hacían las tecnologías que permitían tecnológicamente
dotar de mayores capacidades a este lenguaje y su entorno. Desde un inicio en el que las carencias
se suplían a base de tecnologías no estándar desarrolladas alrededor de éste, hasta la situación
actual que nos lleva hacia una estandarización del trinomio HTML/CSS/JavaScript como eje principal
de la web actual.
De forma paralela y anterior a HTML se establecían otros lenguajes de marcado que influenciarían a
HTML tal como SGML del cuál evolucionó XML. Si bien se han realizado esfuerzos por unificar de
forma completa HTML y XML en XHTML, en la actualidad son tecnologías complementarias pero
distinguidas la una de la otra. HTML se ha centrado en la presentación al usuario mientras que XML
se utiliza en la actualidad más para la comunicación entre máquinas. La proliferación de XML ha
permitido que el estándar se convierta también en un estándar de facto como lenguaje a la hora de
comunicar máquinas y sistemas diversos.
Así pues ambas tecnologías son ampliamente utilizadas en la Administración Pública española.
HTML se utiliza hoy en día como la tecnología base del instrumento principal para comunicarse con el
ciudadano de forma telemática, mientras que XML se utiliza tanto interna como externamente en
multitud de trámites telemáticos facilitando el uso de un lenguaje común.
Es imposible conocer de forma certera cuál será el futuro de estas tecnologías, pero se puede afirmar
que ambas son de vital importancia en la administración digital.
La web vivió unos primeros años de desarrollo frenético gracias a la competencia entre Netscape e
Internet Explorer. Los años de dominio absoluto de Internet Explorer fueron años de estancamiento
de la web (desde el punto de vista técnico, no en cuanto a cantidad de contenidos). Afortunadamente,
ese predominio se empezó a erosionar en 2004 con Firefox y desde 2009 hasta 2014, la competencia
entre Firefox, Chrome e Internet Explorer provocó grandes mejoras en todos los navegadores e
innovaciones técnicas que ya disfrutamos. Desde 2014, Google Chrome se ha convertido en el
navegador dominante y no parece haber alcanzado todavía su techo.
El predominio de Windows daba a Internet Explorer una ventaja fundamental, ya que Internet Explorer
viene incluido de serie en Windows y cada ordenador que se vende es un ordenador con Internet
Explorer, salvo que el usuario tenga la voluntad y conocimientos para cambiar a otro navegador. El
crecimiento de los dispositivos móviles ha cambiado el terreno de juego. La plataforma mayoritaria en
los dispositivos móviles es Android y su navegador nativo, Chrome, cuenta con ventaja.
Esperemos que en los próximos años el predominio de Chrome no signifique un estancamiento del
mercado y que la competencia de Firefox, Internet Explorer y Safari obligue a Google a seguir
mejorando y a respetar las recomendaciones del W3C. Todos nosotros saldremos ganando si la web
sigue siendo ese campo de juego neutral que soñó Berners Lee hace 25 años.
Orientando el tema al examen tipo test, cabe destacar que es un tema del cual pueden aparecer muy
diferentes preguntas, al incluir tecnologías muy extendidas y utilizadas en la administración y que se
encuentran en un continuo cambio. Entre ellas se podrían destacar las relacionadas con lo siguiente:
relacionadas con conocer las versiones y nombres de tecnologías; relacionadas con qué
características y funcionalidad tiene una determinada tecnología o versión; novedades relacionadas
sobre estas tecnologías, por tanto es recomendable tener presente la última actualización del tema;
detalles técnicos; preguntas relacionadas con la legislación aplicable en la administración y estas
tecnologías…
Además se recomienda revisar las preguntas tipo test de ejemplo incluidas en el tema, pues que
incluyen algunas preguntas del estilo a las preguntadas en exámenes de años anteriores así como
otras que se cree podrían encajar con lo que se suele preguntar. Esto nos permite hacernos una idea
del tipo de preguntas que suelen preguntarse, que junto con el Resumen Esquemático nos ayuda a
comprender qué es lo más importante que debe memorizarse de cara al examen tipo test.
63
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
GLOSARIO
GLOSARIO
AJAX - Asynchronous JavaScript and XML
API - Application Program Interface
ASP - Active Server Pages
CGI - Common Gateway Interface
CSS - Cascading Style Sheets
DOM - Document Object Model
DTD – Document Type Definition
HTML - HyperText Markup Language
HTTP - Hypertext Transfer Protocol
IETF - Internet Engineering Task Force
JSON - JavaScript Object Notation
JSP - JavaServer Pages
PHP - Hypertext Preprocessor
RSS - Really Simple Syndication
SAX - Simple API for XML
SEO - Search engine optimization
SOAP - Simple Object Access Protocol
UDDI - Universal Description, Discovery and Integration
URL - Uniform Resource Locator
W3C - World Wide Web Consortium
WHATWG - Web Hypertext Application Technology Working Group
WSDL - Web Services Description Language
XBRL- eXtensible Business Reporting Language
XHTML - Extensible Hypertext Markup Language
XML - Extensible Markup Language
XPATH - XML Path Language
XSL - EXtensible Stylesheet Language
XSLT - XSL Transformations
64
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
RESUMEN ESQUEMÁTICO
RESUMEN ESQUEMÁTICO
HTML
• La Web, entendida como servicio o aplicación de Internet sigue la arquitectura cliente –
servidor.
• El protocolo de comunicaciones mediante el que dialogan el cliente (navegadores) y
servidores web es HTTP (Hypertext Transfer Protocol) transmitiendo principalmente HTML
junto a otras tecnologías relacionadas como JavaScript, CSS, JSON o imágenes.
• HTTP es stateless, usándose otras tecnologías como las cookies para simular sesiones.
• La versión segura de HTTP es HTTPs, y utiliza cifrado basado en SSL/TLS para crear un
canal cifrado entre el servidor y el cliente.
• En mayo de 2015 se publicó el RFC 7540 con la especificación de HTTP/2, la cual pretende
ofrecer mayor velocidad, reducir el uso de recursos en la red y el servidor, mejorar el
rendimiento de la red y la comprensión de cabeceras.
• Para especificar la ubicación de los documentos en la web se utilizan las URLs y URIs.
• HTML es un lenguaje de marcas o etiquetas, y permite describir el contenido y formato de
los documentos web, siendo su versión actual HTML5.
• DOM es una API que proporciona un conjunto estándar de objetos para representar
documentos HTML y XML, y un modelo estándar sobre cómo pueden combinarse dichos
objetos. El DOM representa los objetos de un documento HTML o XML organizados
jerárquicamente.
• Las hojas CSS (Cascading Style Sheets) permiten modificar el aspecto de una página web,
aunque son dependientes de HTML. Su versión actual es CSS3.
• JavaScript es un lenguaje de programación muy relacionado con HTML que permite
interactuar con el Modelo de Objetos del Documento (DOM). Los programas de JavaScript se
incrustan en las páginas HTML, o se vinculan a ellas, y se ejecutan en el navegador web con
el objeto de dotar a las páginas web de mayor interactividad con el usuario.
• El código HTML puede ser generado de forma estática o dinámica. La generación dinámica
se puede realizar en el servidor (utilizando tecnologías como PHP o Servlets) o en el cliente
(utilizando tecnologías como JavaScript).
• Las tecnologías web son ampliamente utilizadas en la administración. La Norma Técnica de
Interoperabilidad (NTI) de Catalogo de estándares establece un catálogo formado por un
conjunto mínimo de estándares que satisfacen lo previsto en el artículo 11 del Real Decreto
4/2010, de 8 de enero, y que dan soporte al resto de Normas Técnicas de Interoperabilidad.
En él se encuentran numerosas tecnologías web, incluyendo HTML, HTTP y URL/URI.
XML
• XML (eXtensible Markup Language) es un lenguaje de marcas que permite describir
información o contenido de forma completamente separada de su presentación o
formato. XML está estandarizado por el W3C (World Wide Web Consortium), siendo su
versión actual XML 1.1.
• En XML las etiquetas y atributos a utilizar son ilimitados. XML permite definir otros lenguajes
o gramáticas.
• XML aporta dos herramientas fundamentales para definir lenguajes basados en XML y, una
vez definidos esos lenguajes, validar documentos XML contra su definición. Estas
herramientas son los DTDs (Document Type Definitions) y los XML Schemas.
• Cuando un documento respeta las reglas básicas de sintaxis XML (abrir y cerrar las etiquetas,
etc.) se dice que está bien formado.
65
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
RESUMEN ESQUEMÁTICO
• Cuando un documento XML bien formado es conforme a un DTD o un XML Schema, se dice
que el documento es válido.
• Los dos modelos de funcionamiento principales de procesamiento de documentos XML son el
modelo DOM (Document Object Model) y el modelo SAX (Simple API for XML). El modelo
DOM mantiene la representación en memoria, el SAX procesa el documento poco a poco.
• XSL, que es un estándar del W3C, permite complementar la información de un documento
XML con una hoja de estilos (instrucciones de formateo). Por tanto, XSL es a XML lo que
CSS es a HTML.
• Los estándares de XSL más destacados son: XSLT (XSL Transofrmations) para transformar
un documento XML original en otro documento que resulte de la transformación del primero;
XPath (XML Path Language) para referenciar partes específicas de un documento XML; y
XSL-FO (XSL Formatting Objects) para la presentación de un documento XML.
• Los lenguajes de intercambio de información de los Servicios Web SOAP, WSDL y UDDI
están basados en XML.
• XBRL es un nuevo lenguaje basado en XML que permite que el intercambio de información
contable, financiera y tributaria entre empresas, organismos y la propia Administración
Pública.
• Tanto HTML como XML son ampliamente utilizadas en la Administración. Su uso está
respaldado por el Esquema Nacional de Interoperabilidad (ENI) y las Normas Técnicas de
Interoperabilidad (NTIs).
Navegadores web
1. Hitos Historia
• El primer navegador web fue desarrollado por Tim Berners-Lee, en la CERN, a finales de
1990 y principios de 1991;
• Enero de 2003, Apple lanzó al mercado el navegador web Safari.
• A finales de 2004 aparece en el mercado Mozilla Firefox,
• Septiembre de 2008, Google Chrome aparece en el mercado.
• En diciembre de 2011, Chrome superó a Internet Explorer 8.0 como el navegador más
utilizado a nivel mundial.
2. Conceptos
• Un navegador web es una aplicación que permite el acceso a internet, interpreta la
información de archivos etiquetados en HTML y los presenta en pantalla según las directrices
de presentación codificadas en una hoja de estilos CSS.
• Una URL es la cadena de caracteres con la que se asigna una dirección única a todos y cada
uno de los recursos de información disponibles en internet.
• El protocolo DNS asigna nombres a direcciones IP (es lo que permite encontrar un servidor
tecleando un nombre).
• Un puerto es una interfaz a través de la cual pueden enviarse y recibirse datos para
comunicarse con otro programa o aplicación a través de una red telemática.
66
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
RESUMEN ESQUEMÁTICO
5. Tipos de Navegación
• Navegación segura: El protocolo HTTPS (Hypertext Transfer Protocol Secure, o protocolo
HTTP seguro) garantiza que las sesiones de navegación están cifradas, por lo que la
transferencia de datos es segura.
• Navegación privada: Con la navegación privada, el navegador no deja en el ordenador
ningún rastro de las páginas que visita (cookies, caché e historial).
• Navegación anónima: TOR, I2P y proxies gratuitos
6. Principales Navegadores
• Google Chrome
• Internet Explorer
• Microsoft Edge
• Firefox
• Safari
• Opera
2. Publicaciones fundamentales:
• Recomendaciones para lenguajes de marcado, como el lenguaje de marcas de hipertexto
(HTML), lenguaje extensible de marcado de hipertexto (XHTML), Scalable Vector Graphics
(SVG), y XForms, de W3C.
• Recomendaciones para hojas de estilo, especialmente hojas de estilo en cascada (CSS),
de W3C.
• Estándares para ECMAScript, más comúnmente JavaScript, de Ecma International.
• Recomendaciones para Document Object Models (DOM), de W3C.
• Nombres y direcciones de página correctamente formados y demás recursos referenciados
de sus (URIs), basado en RFC 2396, de IETF8
• El uso apropiado de los protocolos HTTP y MIME para desplegar la página, regresar datos
pedir otros recursos referenciados a ésta, basado en RFC 2616, de IETF9
3. Web Standards Project (WaSP)
• Es un grupo de desarrolladores web profesionales dedicado a fortalecer el uso de los
estándares web recomendados por el World Wide Web Consortium
• Actividades:
o La prueba Acid2 permite a los navegadores y otros motores de renderizado
demostrar si satisfacen las especificaciones de CSS 1 y 2.
67
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
RESUMEN ESQUEMÁTICO
68
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
PREGUNTAS DE TEST
PREGUNTAS DE TEST
1) XML y HTML5 se caracterizan porque ambos
a) se apoyan en JavaScript.
b) se basan en el protocolo HTTP.
c) son lenguajes de marcado.
d) son conformes a SOAP.
2) AJAX es:
a) Un lenguaje de programación basado en la codificación de programas en XML.
b) Una filosofía o técnica de desarrollo de aplicaciones web que se apoya, entre otras tecnologías, en XML
y JavaScript.
c) Un servidor de aplicaciones Internet desarrollado en Java cuyas páginas web están escritas en XHTML.
d) Una alternativa a SOAP en la descripción de web services.
3) Respecto a HTML5, señale la respuesta correcta:
a) Su uso está recomendado para el desarrollo web de los sitios de la Administración General del Estado,
siempre que no se incumpla la normativa de accesibilidad.
b) En ningún caso se recomienda el uso de HTML5 en el desarrollo web de los sitios de la Administración
General del Estado.
c) Simplifica el desarrollo de sitios web porque elimina el uso de CSS (Cascading Style Sheets).
d) No permite incluir vídeo de forma nativa, siendo necesario recurrir siempre a complementos (plugins)
externos.
4) Indique quién desarrolló el lenguaje JavaScript
a) Microsoft
b) SUN
c) Netscape
d) W3C
5) ¿Qué plugin se necesita para poder ejecutar HTML5?
a) Adobe Flash.
b) W3C Standard Plugin.
c) Internet Explorer.
d) Ninguno, sólo tener un navegador con soporte nativo.
6) Gracias a CSS3:
a) Existe una separación total entre contenido y presentación en HTML/CSS3.
b) Podemos grabar vídeos utilizando la webcam del ordenador sin necesidad de plugins.
c) Se permite el uso de animaciones sin necesidad de plugins adicionales.
d) Permite rotar elementos 2D pero no 3D.
7) La generación dinámica de HTML en el servidor
a) supone una sobrecarga con respecto a una página estática
b) permite adaptar el contenido al usuario
c) no es de uso obligado para server contenido web al cliente
d) todas las anteriores son ciertas
8) ¿Qué afirmación es INCORRECTA?
a) XHTML no es totalmente compatible hacia atrás.
b) Una página web puede contener varios ficheros CSS.
c) Adobe Flash no es parte del estándar de CSS.
d) En HTML5 toda página web debe incluir CSS para formatearla.
9) En relación con lenguajes de marcado, indique cuál de las siguientes afirmaciones es INCORRECTA.
a) XSLT es un lenguaje de marcado para las transformaciones de documentos XML.
b) El XML describe el contenido de la información y la estructura, mientras que HTML está orientado a la
presentación de la información.
c) XPath permite buscar y seleccionar parte de un fichero XML sin utilizar su estructura.
d) CSS permite dar formato tanto a ficheros HTML como a ficheros XML.
10) ¿Cómo se puede validar documentos en XML?
a) Usando XSL Schema.
b) Usando XSLT.
c) Usando un Applet de validación.
d) Usando un DTD.
11) HTML está estandarizado por:
a) World Wide Web Consortium - W3C.
b) Internet Engineering Task Force - IETF.
c) Institute os Management Accountants - IMA.
d) International Accounting Standard Board - IASB.
69
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
PREGUNTAS DE TEST
12) ¿En cuál de los siguientes componentes de XML se define la estructura de los datos que va a contener un
formulario XML?
a) Manifiestos (XSF).
b) Vistas (XLS).
c) Esquemas (XSD).
d) Datos (XML).
13) En análisis de XML, indique cuál de las siguientes expresiones NO es correcta:
a) El modelo DOM procesa el documento XML completo y lo almacena en memoria.
b) En el modelo SAX puede procesar el documento XML a través de eventos.
c) El modelo SAX procesa el documento XML y genera un árbol.
d) El modelo DOM procesa el documento XML y lo modeliza en forma de árbol.
14) El estándar WSDL:
a) Es el protocolo para efectuar llamadas a métodos de objetos remotos mediante peticiones XML.
b) Describe la interfaz de servicio.
c) Es el registro público de servicios.
d) Es el protocolo de transporte.
15) Qué es Atom?
a) Sistema de análisis XML.
b) Tecnología de sindicación de contenidos.
c) Lenguaje que permite el intercambio de información financiera de las empresas.
d) Sintaxis de una DTD.
16) El XSLT transforma:
a) Sólo de XML a XML
b) De XML a otro documento
c) Sólo de XML a HTML
d) De un documento a XML
17) ¿Cuál de las siguientes afirmaciones sobre RSS es errónea?:
a) RSS es un formato para la sindicación de contenidos de páginas web.
b) RSS es un agregador de contenidos de diversas páginas webs de noticias
c) RSS es parte de la familia de los formatos XML
d) Es un acrónimo de "Really Simple Syndication"
18) ¿Cuál de las siguientes afirmaciones con respecto a los XML Schemas es incorrecta?:
a) Los XML Schemas utilizan sintaxis XML
b) Es imposible referenciar múltiples XML Schemas desde el mismo documento XML
c) Los XML Schemas soportan namespaces
d) Los XML Schemas permiten definir tipos de datos
19) Un documento XML bien formado:
a) siempre es válido.
b) nunca es válido.
c) es válido si además es conforme a una DTD o un XML Schema.
d) se considera como tal si es conforme a una DTD o un XML Schema.
20) El XML (Extensible Markup Language) ha sido desarrollado por el W3C. Indique cuál de las siguientes
afirmaciones es falsa:
a) Dada su extensibilidad no se soporta en bases de datos sino que requiere formatos de texto plano
b) Proviene del SGML
c) Pretende ser un estándar para el intercambio de información entre plataformas no circunscrito
exclusivamente a Internet
d) No es un lenguaje propiamente dicho sino un metalenguaje creado para definir lenguages que cubran
diferentes necesidades
21) ¿Cómo se llama el protocolo que usa el navegador para encontrar la IP que corresponde a un nombre de
dominio?
a) TCP/IP
b) URI
c) DNS
d) URL
22) ¿Cuál de las siguientes no es una parte de un navegador actual?
a) La Interfaz de usuario
b) El motor de renderizado
c) El intérprete JavaScript
d) Todas son partes de una navegador.
23) ¿Cuál de los siguientes no es un motor de renderizado?
a) Webkit
b) PowerKit
c) Blink
70
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
PREGUNTAS DE TEST
d) Trident y Tasman
24) ¿Qué afirmación es correcta?
a) El protocolo HTTPS garantiza que las sesiones de navegación están cifradas, por lo que la transferencia
de datos es segura.
b) La navegación privada, el navegador no deja en el ordenador ningún rastro de las páginas que visita y
es igual que la navegación segura con https.
c) Es recomendable usar navegación anónima en las comprar en la red TOR o algún proxy gratuito.
d) Es fundamental que te encuentres dentro de una sesión anónima cuando introduzcas o manejes datos
sensibles, como datos bancarios, académicos o de compras.
25) ¿Cuáles de los siguientes no están entre los 3 navegadores más usados actualmente?
a) Opera
b) Safari
c) Chrome
d) Internet Explorer
26) ¿Cuál es el Test acual que permite ve el estado de compatibilidad de un navegador moderno?
a) W3C Test
b) Acid3 Test
c) ACDC Test
d) Bucket6 Test
27) ¿Qué consorcio se encarga de los estándares de Internet?
a) OASIS
b) ISO
c) W3C
d) IETF
28) Si quiero que mi pagina web sea compatible con la mayoría de los navegadores cual de las siguientes
practicas no es útil
a) Cumplir con los estándares
b) Aplicar técnicas de cross-site scripting
c) Cumplir con las normas WAI de accesibilidad
d) Aplicar técnicas de cross-browsing
71
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
SOLUCIONES A LAS PREGUNTAS DE TEST
72
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.
BIBLIOGRAFÍA
BIBLIOGRAFÍA BÁSICA
1. CSS: http://www.w3.org/Style/CSS/
2. CSS: http://www.w3.org/Style/CSS/current-work
3. CSS: http://www.w3schools.com/css/css3_intro.asp
4. DTD: http://www.w3.org/TR/2004/REC-xml11-20040204 (apartado 2.8 Prolog and Document
Type Declaration)
5. HTML: http://www.w3.org/html/
6. HTML: http://www.w3schools.com/html/html5_intro.asp
7. HTML: http://www.w3.org/TR/html5/
8. HTTP: https://www.ietf.org/rfc/rfc2616.txt
9. XML: http://www.w3.org/XML
10. XML Schemas: http://www.w3.org/XML/Schema
11. Navegadores – Universidad de Alicante:
https://rua.ua.es/dspace/bitstream/10045/54704/3/ci2_basico_2015-16_Navegadores.pdf
12. Navegadores: https://es.wikipedia.org/wiki/Navegador_web
13. Estándares Web: https://es.wikipedia.org/wiki/Est%C3%A1ndares_web
74
Tema 74. Lenguajes y herramientas para la utilización de redes globales. HTML, CSS y XML. Navegadores
web y compatibilidad con estándares.