En esta lección aprenderás:
La World Wide Web nació cerca de Ginebra (Suiza) en el CERN, el laboratorio europeo de física de partículas. Su principal creador fue Tim Berners-Lee (nacido en Londres en 1955), que propuso en 1989 la creación de un sistema de hipertexto para facilitar el intercambio de información entre los investigadores del CERN. En el verano de 1991, este sistema (servidor y navegador) se puso a disposición de todos los usuarios de Internet. El éxito de la web impulsó la creación en 1994 del W3C (World Wide Web Consortium), organismo formado por empresas y universidades de todo el mundo. El W3C se organiza en grupos de trabajo, en los que las empresas y organismos interesados desarrollan por consenso especificaciones que, una vez publicadas, reciben el nombre de recomendaciones.
El W3C está presidido por Berners-Lee y su objetivo es conducir la web a su pleno desarrollo, asegurando su estabilidad. El éxito de la web como espacio compartido de información y entretenimiento ha hecho necesario ir ampliando las capacidades de la web. Para conseguirlo, el W3C ha publicado un gran número de recomendaciones.
Pese al extraordinario desarrollo y utilización de la web, su breve historia está llena de crisis, pasos atrás y conflictos enquistados. Los usuarios de la web están interesados en que existan unas normas comunes que permitan la interoperabilidad y la competencia, pero las empresas que dominan un mercado suelen preferir que no existan normas comunes para que sus productos se conviertan en la norma "de facto" y asegurar su dominio.
El W3C tiene sedes en varios países. Desde octubre de 2003, existe una oficina española del W3C, con sede en Asturias. Entre otras cosas, mantienen una lista de recomendaciones del W3C traducidas al castellano.
El W3C no es el único organismo que juega un papel en el desarrollo de la web. La IETF (Internet Engineering Task Force) se ocupa desde 1986 del desarrollo de la arquitectura de Internet y publica las normas (que por razones históricas reciben el nombre de Request For Comments) que definen los protocolos empleados en Internet. La IANA (Internet Assigned Numbers Authority) se ocupa desde 1972 de la asignación de direcciones a cada ordenador conectado a Internet.
Para que la web funcione, se necesitan tres mecanismos:
Tanto la identificación de los recursos como las reglas de comunicación son aspectos relativamente estables, mientras que el formato de los documentos ha tenido una evolución más compleja y continúa en desarrollo. A continuación se describen los diferentes estándares que conforman la web.
El URI de un elemento identifica su posición en la web (su "dirección" web). En un principio se utilizó el término URL (Uniform Resource Locator = Localizador Uniforme del Recurso). En diciembre de 1994 la IETF publicó la norma RFC 1738 , escrita por Berners-Lee y otros, en la que se detallaban las reglas y características de los URLs. En agosto de 1998 la IETF publicó la norma RFC 2396, escrita por Berners-Lee y otros, en la que ya se adoptó la denominación URI, más general y que engloba direcciones absolutas y relativas. En enero de 2005 la IEFT publicó la norma RFC 3986, escrita por Berners-Lee y otros, que sustituía a la RFC 2396 y que adecuaba las URIs a la internacionalización de los nombres de dominio. En enero de 2005 la IEFT publicó la propuesta de norma RFC 3987, escrita por Martin. Dürst y Michel Suignard, que definía los IRIs (Internationalized Resource Identifiers = Identificadores de Recursos Internacionalizados).
La web, como cualquier otro servicio de Internet, necesita unas reglas definidas de petición y entrega de la información. Las versiones iniciales (de 1991 hasta 1996) de este protocolo no llegaron a ser publicadas como norma. La primera versión "oficial" recibió el nombre de HTTP 1.0 y fue publicada en mayo de 1996 por la IETF como RFC 1945, escrita por Berners-Lee y otros. En enero de 1997 la IETF publicó la norma RFC 2068, escrita por R. Fielding y otros, que definía la versión HTTP 1.1. En junio de 1999, la IETF publicó la norma RFC 2616, escrita por R. Fielding y otros, que actualizaba el protocolo HTTP 1.1.
Completar: ¿habría que hablar aquí de SOAP?
Una página web es un documento de texto con marcas (también llamadas etiquetas). Las marcas permiten modificar la presentación del documento, incluir elementos no contenidos en el texto (por ejemplo, imágenes), crear hiperenlaces, etc. La utilización de marcas se remonta a los años 60 y su formalización culminó en 1986 con la publicación de la norma ISO 8879:1986 (las normas ISO son de pago), que definía el SGML (Standard Generalized Markup Language = Lenguaje de Marcas Generalizado y Normalizado).
Basándose en el SGML, Berners-Lee creó el HTML, definiendo un conjunto de marcas muy reducido que permitiera su utilización en cualquier sistema operativo y la creación de enlaces de hipertexto. El éxito de la World Wide Web en los primeros años 90 hizo necesario la ampliación de las características del HTML, lo que requería nuevas marcas. Este desarrollo fue impulsado por las empresas que desarrollaban los navegadores (básicamente Netscape y Microsoft) y fue un desarrollo bastante caótico que no se logró encauzar hasta mediados de los 90, con la creación del W3C (World Wide Web).
En noviembre de 1995 la IETF publicó la norma RFC 1866, escrita por Berners Lee y D. Connolly, que define la versión HTML 2.0. Esta versión recapitulaba el estado del HTML de 1994 y recibió el nombre de HTML 2.0 para distinguirla de los HTML anteriores, que nunca recibieron nombre oficial. LA IETF dejó de trabajar en este campo en 1996, aunque en en junio de 2000 publicó la norma RFC 2854, que definía el tipo MIME (Multipurpose Internet Mail Extension) text/html y anulaba los RFC anteriores relativos al HTML.
El W3C publicó en enero de 1997 la recomendación HTML 3.2, escrita por Dave Raggett. Esta versión incorporó muchas estructuras nuevas al HTML (tablas, imágenes flotantes, applets, hojas de estilo). En abril de 1998 se publicó la recomendación HTML 4.0, editada por Dave Raggett y otros. Los cambios más importantes fueron la incorporación de los frames y la mayor relevancia de las hojas de estilo. En diciembre de 1999, se publicó la recomendación HTML 4.01, editada por Dave Raggett y otros, que modificaba ligeramente la versión anterior.
En HTML 4.01 se definen tres tipos de documentos: Strict (esctricto), Frameset (con marcos) y Transitional (de transcición). El tipo Transitional intenta parecerse a las versiones anteriores de HTML, manteniendo el mayor número posible de etiquetas. El tipo Frameset es como el Transitional, salvo que incluye además la posibilidad de crear marcos (frames). El tipo Strict elimina las etiquetas directamente relacionadas con el aspecto visual (como font, s o u).
Con estas recomendaciones, uno de los objetivos del W3C había sido profundizar la separación entre contenido y su presentación, es decir, eliminar del HTML las etiquetas que hicieran referencia directa al formato visual (y almacenar esta información en una hoja de estilo). Pero al mismo tiempo, el W3C tuvo que aumentar el número de etiquetas para dar respuesta a las demandas de los usuarios, cada vez más diferentes. Pero como estas demandas son inagotables, el W3C tomó un camino diferente: el XML.
XML (eXtensible Markup Language = lenguaje de Marcas Extensible) no es un nuevo lenguaje de marcas, sino las reglas para poder crear nuevos lenguajes de marcas compatibles entre sí. En febrero de 1998 se aprobó la recomendación XML 1.0, editada por Tim Bray y otros. En octubre de 2000 y febrero de 2004 se aprobaron la segunda y tercera edición de esta recomendación, ambas editadas por Tim Bray y otros. En febrero de 2004 se aprobó la recomendación XML 1.1, editada por Tim Bray y otros, que modificaba el concepto de documento bien-formado y se adaptaba a las modificaciones ocurridas en el juego de caracteres Unicode.
Lógicamente, el siguiente paso fue adaptar el HTML a las exigencias del XML. El resultado se publicó en enero de 2000: la recomendación XHTML 1.0 (Extensible HyperText Markup Language = Lenguaje de Marcas de HiperTexto Extensible), de la que en agosto de 2002 se publicó la segunda edición. En realidad, XHTML 1.0 no es más que el HTML 4.01 adaptado a las reglas (más formalizadas) del XML 1.0.
Paralelamente, para abordar el problema de la diversidad de aplicaciones, el W3C aprobó en 2001 la modularización del XHTML. La idea es dividir el lenguaje en grupos de marcas relacionadas para poder limitar o ampliar el lenguaje, definiendo por ejemplo perfiles xhtml+mathml o xhtm+mathml+svg. En esa dirección se aprobó en 2000 la recomendación XHTML Basic, que definía un XHTML mínimo, y en 2001 la recomendación XHTML 1.1, que no supuso apenas cambios con respecto al XHTML 1.0, pero que se estructura de acuerdo con la modularización.
Actualmente (octubre de 2005), el W3C está preparando, entre otras, la recomendación XHTML 2.0, cuya aprobación no tiene siquiera fecha prevista.
Las hojas de estilo es el mecanismo elegido por el W3C para separar la presentación de una página web de su contenido. En las primeras versiones del html, el aspecto visual (tipos de letras, colores, etc) se incorporaba en la propia página web. Trabajando con hojas de estilo, la página web (el fichero .html) no contiene información sobre la forma de representar la página, sino que esa información se encuentra en la hoja de estilo (el fichero .css). Las ventajas son evidentes: se asegura la uniformidad del diseño (ya que varias páginas pueden utilizar la misma hoja de estilo) y se facilita su modificación (ya que sólo hay que cambiar el diseño en la hoja de estilo). Se denominan Hojas de Estilo en Cascada, porque la información de estilo se puede situar en varios lugares (hoja de estilo externa, hoja de estilo incluida en la página web o estilos incluidos en las etiquetas de la página web) y se aplican de forma jerárquica.
En diciembre de 1996 se aprobó la recomendación CSS nivel 1, escrita por Håkon Wium Lie y Bert Bos. En enero de 1999, se aprobó una versión revisada, CSS nivel 1 revisada, escrita por Håkon Wium Lie y Bert Bos, que básicamente corregía erratas y errores menores. En mayo de 1998 se aprobó la recomendación CSS nivel 2, editada por Bert Bos y otros, que manteniendo la compatibilidad con las hojas de estilo de nivel 1, incluía nuevas características (posicionamiento, estilos de tablas) y permitía la utilización de hojas de estilo adaptadas al medio de presentación (visual, oral, impreso, etc).
Actualmente (octubre de 2005), el W3C está preparando la recomendación CSS 2.1 y las recomendaciones CSS 3, así como unas versiones reducidas de CCS 2 para teléfonos móviles, televisión e impresoras.
La recomendación CSS 2.1 es una "puesta al día" de la recomendación CSS nivel 2, corrigiendo erratas, eliminando aspectos que los navegadores no han incluido en los últimos años y añadiendo aspectos que sí han incorporado los navegadores. Está previsto que esta recomendación se apruebe en 2006.
Las recomendaciones CSS 3 tienen un enfoque distinto. En vez de elaborar una única recomendación como en las versiones anteriores, las diferentes partes se han separado en recomendaciones distintas (más de 30), para facilitar su actualización. No hay practicamente fechas previstas para la publicación de estas recomendaciones.
ECMAScript (habitualmente denominado JavaScript) es un lenguaje de programación diseñado para ser incluido dentro de las páginas web. Para facilitar el acceso y manipulación de los elementos de las páginas web a cualquier lenguaje de programación (no solamente a ECMAScript), el W3C ha desarrollado un interface denominado DOM (Document Object Model = Modelo de Objeto de Documento).
JavaScript fue creado por Brendan Eich en 1995 para Netscape y su nombre se debe a que se trata de un lenguaje de script con una sintaxis similar a la del lenguaje de programación Java. Netscape delegó en la ECMA (European Computer Manufacturers Association) la normalización del lenguaje. De hecho el nombre correcto del lenguaje es ECMAScript, aunque incorrectamente se le suele llamar todavía JavaScript. JavaScript es en realidad la adaptación de ECMAScript soportada por Netscape, de la misma manera que jscript es la adaptación de ECMAScript soportada por Internet Explorer.
En junio de 1997 ECMA publicó la primera edición de ECMAScript, la norma ECMA-262. En agosto de 1998 se publicó la seguna edición de esta norma y en diciembre de 1999 se publicó la tercera edición. En junio de 2004 se publicó la primera edición de la norma ECMA-357, que añade a ECMAScript su uso en documentos XML.
Netscape ha ido incluyendo varias versiones de JavaScript en sus navegadores. JavaScript 1.0 se incluyó en el navegador Netscape 2.0 (marzo de 1996) y era capaz de procesar datos numéricos y modificar el contenido de los formularios. La forma de acceder y manipular los elementos de la página recibió el nombre de DOM level 0 (Document Object Model = Modelo de Objeto de Documento). JavaScript 1.1 se incluyó en el navegador Netscape 3.0 (agosto de 1996). JavaScript 1.2 se incluyó en el navegador Netscape 4.0 (junio de 1997). JavaScript 1.3 se incluyó en el navegador Netscape 4.5 (octubre de 1998). JavaScript 1.4 no fue incluido en ningún navegador, sino en el servidor de Netscape. JavaScript 1.5 se incluyó en el navegador Netscape 6.0 (noviembre de 2000).
Microsoft ha ido incluyendo varias versiones de jscript en sus navegadores. jscript 1.0 se incluyó en Internet Explorer 3.0 (agosoto de 1996). jscript 2.0 se incluyó en Internet Explorer 3.02 (enero de 1997). jscript 3.0 se incluyó en Internet Explorer 4.0 (octubre de 1997). jscript 4.0 no se incluyó en ningún navegador. jscript 5.0 se incluyó en Internet Explorer 5.0 (marzo de 1999). jscript 5.5 se incluyó en Internet Explorer 5.5 (julio de 2000). jscript 5.6 se incluyó en Internet Explorer 6.0 (octubre de 2001). Existe un jscript 7.0 y un jscript 8.0, pero creo que no se ha incluido en ningún navegador.
Las sucesivas versiones de JavaScript y jscript han ido convergiendo hacia el estándar ECMAScript, aunque no de forma total. Este comportamiento (más acusado en el caso de Microsoft) supone un quebradero de cabeza para los desarrolladores.
Completar
El término DHTML (Dynamic HTML = HTML Dinámico) no corresponde a ninguna recomendación del W3C. Es un término comercial utilizado a finales de los 90 para referirse a las páginas webs que utilizaban hojas de estilo y rutinas ECMAScript para aumentar la interactividad. El término ha caido en desuso.
Además del XHTML, el W3C ha publicado otros lenguajes de marcas, dirigidos a dominios específicos, como por ejemplo:
MathML es un lenguaje de marcas dirigido a la representación de fórmulas matemáticas.
En abril de 1998 se aprobó la recomendación MathML 1.0, editada por Patrick Ion y Robert Miner. En julio de 1999 se aprobó la recomendación MathML 1.01, editada por Patrick Ion y Robert Miner, que básicamente corregía errores de la primera versión. En febrero de 2001 se aprobó la recomendación MathML 2.0, editada por Robert Carlisle y otros, en la que se introdujeron y eliminaron algunos elementos. En octubre de 2003 se aprobó la recomendación MathML 2.0 (2º edición), editada por Robert Carlisle y otros, en la que se introdujeron y eliminaron algunos elementos.
Completar: plug-in para IE, nativo en Firefox.
SVG es un lenguaje de marcas dirigido a la representación de gráficos vectoriales (dibujos y texto).
En septiembre de 2001 se aprobó la recomendación SVG 1.0, editada por Jon Ferraiolo. En enero de 2003 se aprobaron las recomendaciones SVG 1.1, editada por Dean Jackson, y SVG Profiles, editada por Tolga Capin, en la que se definían dos versiones para dispositivos móviles, SVG Tiny (para teléfonos móviles) y SVG Basic (para PDAs).
Actualmente (octubre de 2005), el W3C está preparando la recomendación SVG 1.2, que tendrá dos versiones. Una versión completa, SVG 1.2 Full, y una versión reducida, SVG 1.2 Tiny.
Poco a poco, SVG se está imponiendo como formato común para gráficos vectoriales. Muchos editores gráficos permiten exportar los dibujos en formato SVG o incluso trabajan con SVG como formato nativo, por ejemplo Inkscape, un editor con licencia GPL. También cabe destacar la colección de imágenes en formato SVG Open Clip Art Library, con licencia Creative Commons.
Completar: pug-in Adobe o Corel para Internet Explorer y Firefox
SMIL es un lenguaje de marcas dirigido a la creación de presentaciones.
En junio de 1998 se aprobó la recomendación SMIL 1.0, editada por Philipp Hoschka. En agosto de 2001 se aprobó la recomendación SMIL 2.0, editada por Jeff Ayars y otros. En enero de 2005 se aprobó la recomendación SMIL 2.0 (2º edición), corrigiendo los errores de la primera edición.
Completar: SMIL en Internet Explorer y Firefox
SSML es un lenguaje de marcas dirigido a la síntesis de voz.
En marzo de 2004 se aprobó la recomendación VoiceXML 2.0, editada por Scott McGlashan y otros (la especificación VoiceXML 1.0 no fue elaborada por el W3C, sino por el consorcio VoiceXML Forum en marzo de 2000). En marzo de 2004 se aprobó la recomendación Speech Recognition Grammar Specification 1.0, editada por Andrew Hunt y Scott McGlashan. En septiembre de 2004 se aprobó la recomendación SSML 1.0, editada por Daniel C. Burnett y otros.
La recomendación VoiceXML controla la interacción de las aplicaciones con el usuario, la recomendación SSML se ocupa del control de la síntesis de voz y la recomendación SRGS está dirigida a los reconocedores de voz mediante gramáticas que describen la respuesta esperada de los usuarios.
Actualmente (octubre de 2005), el W3C está preparando la recomendación VoiceXML 2.1.
XML (eXtensible Markup Language = lenguaje de Marcas Extensible) no es un nuevo lenguaje de marcas, sino las reglas para poder crear nuevos lenguajes de marcas compatibles entre sí.
Posiblemente, el desarrollo del XML es actualmente (octubre de 2005) la principal actividad del W3C, que ha dado lugar a un gran número de recomendaciones.
En febrero de 1998 se aprobó la recomendación XML 1.0, editada por Tim Bray y otros. En octubre de 2000 y febrero de 2004 se aprobaron la segunda y tercera edición de esta recomendación, ambas editadas por Tim Bray y otros. En febrero de 2004 se aprobó la recomendación XML 1.1, editada por Tim Bray y otros, que modificaba el concepto de documento bien-formado y se adaptaba a las modificaciones ocurridas en el juego de caracteres Unicode.
Los espacios de nombres es el mecanismo que permite que diferentes lenguajes puedan compartir etiquetas sin ambigüedad.
En enero de 1999 se aprobó la recomendación Namespaces in XML, editada por Tim Bray y otros. En febrero de 2004 se aprobó la recomendación Namespaces in XML 1.1, editada por Tim Bray y otros.
Completar
Completar
Completar
Completar
Completar con XForms en Firefox
Completar
Otras cosas que faltan: accesibilidad, Flash
La tabla siguiente indica las fechas de publicación de las recomendaciones del W3C o de ECMAScript (JavaScript):
Año | (X)HTML | CSS | DOM | Otros ML | XML | ECMAScript |
---|---|---|---|---|---|---|
2005 | Ene: SMIL 2.0 (2º ed) | |||||
2004 | Abr: DOM 3 (core) | Sep: SSML 1.0 Mar: SRGS 1.0 Mar: VoiceXML 2.0 |
Feb: XML 1.1 Feb: XML 1.0 (3º ed) |
Jun: ECMAScript para XML (E4X) | ||
2003 | Ene: DOM 2 (HTML) | Oct: XForms 1.0 Oct: MathML 2.0 (2º ed) Ene: SVG 1.1 |
||||
2002 | Ago: XHTML 1.0 (2º ed) | |||||
2001 | May: XHTML 1.1 Abril: Modularización XHTML |
Sep:SVG 1.0 Ago: SMIL 2.0 Feb: MathML 2.0 |
||||
2000 | Dic: XHTML Basic Ene: XHTML 1.0 |
Nov: DOM 2 (core, etc) Sep: DOM 1 (2º ed) |
Oct: XML 1.0 (2º ed) | |||
1999 | Dic: HTML 4.01 | Ene: CSS 1 (revisión) | Jul: MathML 1.01 | Dic: 3º edición | ||
1998 | Abr: HTML 4.0 (revisión) | May: CSS 2 | Oct: DOM 1 | Jun: SMIL 1.0 Abr: MathML 1.0 |
Feb: XML 1.0 | Ago: 2º edición |
1997 | Dic: HTML 4.0 Ene: HTML 3.2 |
Jun: 1º edición | ||||
1996 | Dic: CSS 1 | |||||
1995 | Nov: HTML 2.0 |
La tabla siguiente indica las fechas de publicación de las versiones para Windows de los navegadores más importantes.
Año | Mosaic | Netscape | Internet Explorer | Opera | Mozilla / Firefox |
---|---|---|---|---|---|
2005 | May: NS 8.0 | Sep: Op 8.50 Abr: Op 8.0 |
|||
2004 | Ago: NS 7.2 | Ago: IE 6.0 SP2 | Nov: Op 7.60 May: Op 7.50 |
Nov: Firefox 1.0 Jun: Moz 1.7 En: Moz 1.6 |
|
2003 | Jun: NS 7.1 | Sep: Op 7.20 Abr: Op 7.10 Ene: Op 7.0 |
Oct: Moz 1.5 Jun: Moz 1.4 Mar: Moz 1.3 |
||
2002 | Ago: NS 7.0 | Sep: IE 6.0 SP1 | Dic: Moz 1.2 Ago: Moz 1.1 Jun: Moz 1.0 |
||
2001 | Oct: NS 6.2 | Oct: IE 6.0 | Nov: Op 6.0 | Dic: Moz 0.9.7 | |
2000 | Nov: NS 6.0 | Jul: IE 5.5 | Dic: Op 5.0 Jun: Op 4.0 |
Dic: Moz 0.6 | |
1999 | Sep: NS 4.7 | Mar: IE 5.0 | Dic: Moz M12 Mar: Moz M3 |
||
1998 | Oct: NS 4.5 | Nov: Op 3.5 | |||
1997 | Ene: Mos 3.0 | Jun: NS 4.0 | Nov: IE 4.01 Oct: IE 4.0 |
Dic: Op 3.0 | |
1996 | Ago: NS 3.0 Mar: NS 2.0 |
Nov: IE 3.01 Ago: IE 3.0 |
Dic: Op 2.1 | ||
1995 | Oct: Mos 2.0 | Jul: NS 1.2 Abr: NS 1.1 |
Nov: IE 2.0 Ago: IE 1.0 |
||
1994 | Dic: NS 1.0 | ||||
1993 | Nov: Mos 1.0 |
Notas: