Aunque la web original estaba pensada de forma que los navegadores iban a funcionar también como servidores, dicha simetría no tardo en perderse y pronto una web destinada a lectura y escritura se volvió en un sistema de visionado de documentos de hipertexto (enlazados entre sí) ofrecidos por lo que conocemos como servidores web. Es decir, la funcionalidad que iba a ser ofrecida por programas que interpretaban y servían se dividió en dos: los navegadores interpretaban y los servidores web servían. Al principio, no existían documentos dinámicos, es decir, generados al vuelo, sino más bien, y al igual que con FTP, se trataba de documentos estáticos que se actualizaban y se subían al servidor. Mucho después llego el CGI y con él el ecosistema de servidor de aplicaciones y las posibilidades de las aplicaciones web.
- Consultar insistentemente al servidor. Es la forma más ineficiente. Consume muchos recursos y la mayor parte de las veces la respuesta va a ser que no hay nada nuevo. Es el sistema que se utiliza con las fuentes RSS o ATOM sobre novedades en una web. Es equiparable al niño en el asiento de atrás del coche preguntando cada 10 segundos: "¿Cuánto queda?"
- Comet. Abrir una conexión permanente/persistente con el servidor web. También consume recursos y origina un problema al obligar a que el servidor mantenga abiertas un número elevado de conexiones. Es posible implementarla sobre HTTP de forma que el servidor web no cierre una conexión y vaya ofreciendo la información en pequeñas dosis con las actualizaciones. O bien se puede montar un servidor paralelo dedicado a ellas. Es el sistema que se utiliza en los chats web.
- Finalmente, y he aquí la novedad, se puede rescatar la idea original de Tim Berners-Lee y añadir un pequeño servidor a cada navegador. ¿Con qué finalidad? Permitir que un servidor nos haga una petición directamente al navegador. Si no lo has visto aún, echa un vistazo a esta demo. Esa página web, crea una conexión persistente con un servidor, a través de la cuál puede recibir peticiones que la propia página web en el navegador se encarga de contestar (mediante una petición HTTP con la respuesta al mismo servidor). Funciona y permite hacerse una idea de las posibilidades, aunque no haya un servidor realmente en el navegador. El principal inconveniente de implementar un servidor como tal es que por la arquitectura de Internet resulta muy complejo conseguir que éste reciba peticiones desde el exterior saltándose proxies y firewalls. Por ello en el ejemplo anterior, conocido como ReverseHTTP, la conexión de servicio la inicia el navegador, porque en ese sentido (navegador -> servidor web) la conexión no es un problema. La idea que intento transmitir es vencer la asimetría del HTTP (el servidor no puede enviar información al navegador) creando una infraestructura idéntica a la existente pero en sentido contrario (el servidor se convierte en cliente/navegador y realiza peticiones HTTP al servidor incorporado en el navegador del visitante). Se trata de una solución extremadamente elegante que permite la que esta empezando a conocerse como web en tiempo real. Al mecanismo por el que un servidor notifica a otro mediante una petición HTTP a una URL acordada entre ambos se conoce como WebHook. Actualmente se empieza a usar entre servidores de Internet y permite, por ejemplo, que un nuevo artículo de una web sea enviado a nuestro móvil en el instante en que es publicado. Términos como PushButton, RSSCloud o PubHubSubBub están ahora mismo en pleno auge, pero sigue necesitándose un estándar en el mismo navegador que permita convertirlo en una especie de servidor que reciba notificaciones y actúe en consecuencia. Y estamos a un solo paso: HTML5 Server-sent Events.
La Web en Tiempo Real es un paradigma basado en enviar información a los usuarios tan pronto como esté disponible - en lugar de requerir que éstos o su software compruebe periódicamente si hay actualizaciones. Puede ser habilitada de diferentes formas y puede requerir una arquitectura técnica distinta. Se está implementando en redes sociales, búsquedas, noticias, y otros sitios - haciendo esas experiencias más parecidas a la Mensajería Instantánea (chat) y facilitando innovaciones imprevisibles. Los primeros beneficios incluyen un compromiso mayor de los usuarios ("flujo") y cargas más reducidas en los servidores, pero esto es sólo el principio. La entrega de información en tiempo real probablemente se haga ubicua, un requisito para casi cualquier website o servicio.