2. Hacia la web asíncrona
¿Qué es Internet?
Es una enorme red, que une diferentes redes
independientes utilizando el protocolo TCP/IP.
Son un montón de máquinas con direcciones IP, que
pueden interconectarse entre ellas.
Internet no depende de una única organización, empresa
o gobierno.
Muchas organizaciones y empresas “juntas” diseñan los
estándares.
Los gobiernos y empresas tienen las infraestructuras
(cables submarinos, satélites...)
3. Hacia la web asíncrona
Términos de Internet
RFC: Request for Comments
Especificaciones que comenzaron a escribirse en 1969,
proporcionando así una manera de proponer protocolos,
explicados de tal manera que no dieran lugar a ambigüedades.
SGML: Standard Generalized Markup Language
Estandarizado en 1986 por ISO, especifica un sistema para la
organización y etiquetado de documentos.
4. Hacia la web asíncrona
Organizaciones en Internet
W3C: World Wide Web Consortium
Consorcion Internacional creado en 1994 por Tim Berners-Lee,
que publica las recomendaciones a seguir para la WWW.
IEFT: Internet Engineering Task Force
Organización Internacional Abierta de Normalización, creada en
EEUU en 1986, y que abarca áreas como el transporte, la
seguridad y el encaminamiento.
ECMA: European Computer Manufactures Association
Asociación Internacional de fabricantes de computadoras, que
persiguen crear estándares en comunicación e información.
5. Hacia la web asíncrona
Historia de Internet (1)
Comenzó a finales de los 50, como un proyecto
experimental de ARPA (La Agencia de investigación
avanzada de proyectos del Departamento de Defensa)
1968 – Primeras conexiones con universidades (UCLA,
Standford...)
1973 – Xerox inventa el cable Ethernet
1974 – Se comienzan a diseñar los primeros protocolos
independientes de la topología de red.
1974 – El primer borrador de TCP.
6. Hacia la web asíncrona
Historia de Internet (2)
1981 – Nace el término Internet
1982 – ISO libera OSI (modelo de comunicación de
redes de 7 capas)
1984 – Nace DNS (Sistema de Nombres de dominio)
1990 – Tim Bernes-Lee, en el CERN (Ginebra),
inventa:
HTTP (protocolo de transporte)
HTML (meta-lenguaje de hiper texto)
WorldWideWeb (primer navegador web)
7. Hacia la web asíncrona
HTTP
Protolo de transporte a nivel de aplicación utilizado en
cada petición web.
HTTP se basa en una serie de RFC, siendo el más
importante el RFC 2616, que especifica HTTP 1.1
Protocolo orientado a transacciones, que se basa en un
esquema petición-respuesta de un cliente(navegador)
hacia un servidor (apache?).
HTTP es un protocolo sin estado: No se guarda
información de conexiones anteriores.
8. Hacia la web asíncrona
HTTP 1.1 – REQUESTS (peticiones)
Existen unos cuantos métodos de petición en HTTP 1.1,
siendo los más importantes GET, POST o HEAD.
Ejemplo de petición HTTP:
GET / HTTP/1.1
Host: www.google.es
UserAgent: Mozilla/5.0 (X11; U; Linux i686; esES;
rv:1.9.0.11) Gecko/2009060308 Ubuntu/9.04 (jaunty)
Firefox/3.0.11
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0
.8
AcceptLanguage: enus,en;q=0.7,es;q=0.3
AcceptEncoding: gzip,deflate
AcceptCharset: ISO88591,utf8;q=0.7,*;q=0.7
Cookie:
PREF=ID=134e9ba9c956a28f:TM=1247645018:LM=1247645018:S=9sHtNu
O_unBFgLVV
n
9. Hacia la web asíncrona
HTTP 1.1: RESPONSE (respuestas) (1)
Las respuestas del servidor están basadas en códigos de
respuesta:
1xx – Conexión rechazada
2xx – Operación exitosa
3xx – Redirección
4xx – Error en el cliente
5xx – Error en el servidor
La respuesta del servidor se divide encabezados de
respuesta, seguidos del recurso solicitado (html,
imágenes, audio, etc)
10. Hacia la web asíncrona
HTTP 1.1: RESPONSE (respuestas) (2)
Ejemplo de respuesta HTTP:
HTTP/1.x 200 OK
CacheControl: private, maxage=0
Date: Wed, 15 Jul 2009 08:14:16 GMT
Expires: 1
ContentType: text/html; charset=UTF8
ContentEncoding: gzip
Server: gws
ContentLength: 2867
n
<html>
Etc, etc, etc ...
11. Hacia la web asíncrona
HTML
Publicado por Tim Berners-Lee en 1991, con el nombre
HTML Tags.
Incluía etiquetas de listas(ul), glosarios(dt,dl), encabezados(h1,h2)
o enlaces (a) entre otras que todavía se conservan.
En 1993, la IETF lo reconoció como una ampliación de
SGML, definiendo el primer DTD para HTML.
HTML ha evolucionado hasta xHTML (eXtensible
HyperText Markup Language): una implementación de
HTML, siguiendo las pautas más estrictas de XML.
12. Hacia la web asíncrona
Navegadores Web
Mosaic: Primer navegador web usado “masivamente”.
- Segundo navegador gráfico, primero en MSWindows.
- Creado en 1993.
Internet Explorer: Navegador desarrollado por MS
Windows, cuya primera versión se publicó en agosto de
1995.
Netscape: Primer navegador en introducir scripting
introducido en los documentos HTML. Diciembre de
1995.
13. Hacia la web asíncrona
Javascript
Lenguaje interpretado (no compilado), inventado por
Brendan Eich, e introducido en la versión 1.0 de
Netscape Communications.
Básicamente dotaba de lógica de programación a los
documentos HTML (estáticos hasta entonces).
En 1997 fue adoptado como estándar ECMA.
Actualmente está soportado por todos los navegadores, y
se encuentra en la versión 1.8
Ha sido el protagonista “técnico” detrás del BOOM 2.0
Hoy por hoy es junto a la tecnología ShockWave Flash, el
protagonista de la web que conocemos.
14. Hacia la web asíncrona
SWF: Flash
Formato de archivo basado en gráficos vectoriales y
creado por Macromedia (adquirido por Adobe Systems)
Ficheros binarios que pueden ser ejecutados en cualquier
navegador gracias a un plugin (disponible en todas las
plataformas).
Actualmente además de soportar audio y video,
implementa un gran número de funcionalidades que
han facilitado mucho la creación de aplicaciones muy
potentes en Internet.
15. Hacia la web asíncrona
Web síncrona
A pesar de todo, la web sigue basándose en HTTP.
Seguimos teniendo un protocolo sin estados, basado en el
binomio pregunta-respuesta.
Javascript y Flash dotan a nuestros navegadores de fuegos
artificiales, pero siempre basándonos en eventos y
peticiones que nacen en el cliente.
Las aplicaciones web están cada vez más de moda:
Procesadores de texto, clientes de correo, mapas navegables,
ERPs, CRMs, Administración de router...
TODO ES WEB... y la web es síncrona.
16. Hacia la web asíncrona
Políticas pooling
Problema: Necesitamos avisar al cliente web de distintos
eventos que suceden “ajenos” a él, de manera
“amigable”.
Gracias a XMLHttpRequest (o el vulgar AJAX), podemos
realizar peticiones al servidor web “escondidas al
usuario”.
Solución: Preguntemos al servidor cada cierto tiempo (1
segundo, 500 ms), si algo ha cambiado, y lo cambiamos
en el DOM.
Los servidores web no están preparados para esto...
¿Alternativas?
17. Hacia la web asíncrona
Flash Shared Objects
Flash tiene la tecnología para crear objetos compartidos
en swfs.
Tiene su propio servidor (Flash Media Server), su propia
capa de transporte (AMF) y su propio protocolo de
comunicación (RTMP).
Básicamente se comparten estructuras entre varios
clientes y un servidor, que se actualizan en tiempo real.
Se evitan políticas de pooling, aunque estamos utilizando
un elemento que no está soportado por los
navegadores directamente.
18. Hacia la web asíncrona
Comet
Técnica de programación web basado en
XMLHttpRequest, que evita el pooling para la
actualización de datos en el lado del cliente.
Utilizando lo que se conoce como long-pooling.
Básicamente consiste en mantener abierta y viva la
conexión HTTP, esperando a que el servidor envíe
datos.
En cada envío de datos la conexión deberá ser renovada.
El cliente realiza las peticiones utilizando otra conexión
paralela.
Rendimiento muy bajo para sitios con mucho ancho de
banda.
19. Hacia la web asíncrona
HTML 5: WebSocket
HTML5 es la quinta revisión de HTML en la que trabaja
el W3C.
Una de las principales características de HTML5 es la
introducción del concepto de WebSocket.
Proporciona una interfaz en Javascript para crear un canal
de comunicación full-duplex.
miWebSocket.onopen = function(e) {alert(“conectado.”);};
miWebSocket.onmessage = function(e) {alert(e.data);};
miWebSocket.postMessage(“hola servidor!”);
miWebSocket.disconnect();
Sencillo, limpio, y sin hacks innecesarios :)
20. Hacia la web asíncrona
Licencia Copyleft
Copyright