El Protocolo de Transferencia de Hipertexto, HTTP, es un componente clave de la World Wide Web. Es la capa de comunicación a través de la cual los navegadores web solicitan páginas a los servidores web y mediante la cual estos responden con el contenido de las páginas. Como gran parte de internet, existe desde hace décadas, pero un anuncio reciente revela que HTTP/2, la primera gran actualización en 15 años, está a punto de llegar.
El protocolo HTTP original fue el que Sir Tim Berners-Lee utilizó por primera vez en el CERN, donde se creó la web en 1991. Se mejoró durante muchos años y se finalizó como HTTP 1.1 en 1999, el estándar actual utilizado en todo el mundo. A lo largo de los años, la web ha cambiado drásticamente: ha incorporado imágenes, hojas de estilo complejas y código Javascript, Flash y otros elementos integrados, entre muchas otras cosas. El HTTP original era un protocolo sencillo para una web sencilla; no se diseñó para gestionar sitios web cada vez más ricos en contenido multimedia.
Por ejemplo, Google gestiona 40.000 búsquedas web por segundo todos los días. Para hacer frente a la presión de prestar servicio a miles de millones de usuarios de internet, los técnicos de la empresa pusieron en marcha en 2009 un proyecto llamado SPDY (se pronuncia «speedy») para mejorar HTTP. Aunque al principio solo se usaba internamente, otros sitios con mucho tráfico, como Twitter, Facebook, WordPress y CloudFlare, también implementaron SPDY tras comprobar sus mejoras de rendimiento.
Esto llamó la atención del Grupo de Trabajo de Ingeniería de Internet (IETF), que desarrolla y promueve estándares de internet. En 2012, el IETF decidió utilizar SPDY como base para HTTP/2, y ambos protocolos se desarrollaron en paralelo. Aunque Google encabezó el desarrollo del protocolo, el trabajo continúa en los grupos de trabajo abiertos del IETF, como ha ocurrido con otros protocolos durante más de 30 años.
Google anunció recientemente que abandonaría SPDY en favor del inminente HTTP/2.
Las desventajas de HTTP 1.1
Hoy en día, las páginas web pueden generar muchas solicitudes de imágenes, hojas de estilo CSS, vídeos y otros objetos integrados, anuncios externos, etc.; quizá un centenar por página. Esto añade una carga innecesaria al servidor web y ralentiza la carga de la página, porque HTTP 1.1 solo admite una solicitud por conexión.
HTTP 1.1 es sensible a las conexiones de alta latencia —aquellas con un tiempo de respuesta lento—. Esto puede ser un gran problema al usar un dispositivo móvil conectado a redes celulares, donde incluso una conexión de alta velocidad puede parecer lenta. La canalización HTTP permite que el navegador envíe otra solicitud mientras espera la respuesta a una solicitud anterior. Aunque esto contribuiría a afrontar la alta latencia, presenta sus propios problemas y está desactivada de forma predeterminada en la mayoría de los navegadores.
Las ventajas de HTTP/2
En lugar de utilizar texto sin formato, HTTP/2 es ahora un protocolo binario, más rápido de analizar y más compacto durante la transmisión. Mientras que HTTP 1.1 tenía cuatro formas distintas de gestionar un mensaje, HTTP/2 las reduce a una. Para resolver el problema de las múltiples solicitudes, HTTP/2 permite una sola conexión por sitio, pero mediante la multiplexación de flujos hace caber muchas solicitudes en una única conexión. Estos flujos también son bidireccionales, lo que permite que tanto el servidor web como el navegador transmitan datos a través de una sola conexión. Se puede asignar prioridad a cada flujo, por lo que los navegadores pueden determinar qué imagen es la más importante o priorizar un nuevo conjunto de flujos cuando se cambia de pestaña.
HTTP es un protocolo sin estado: cada conexión consta de un par de solicitud y respuesta, sin relación con las conexiones anteriores o posteriores. Esto significa que cada solicitud también debe incluir los datos pertinentes de la conexión, que se envían en los encabezados HTTP. A medida que HTTP 1.1 evolucionó, los encabezados fueron creciendo al incorporar nuevas funciones. HTTP/2 utiliza la compresión de encabezados para reducir esta sobrecarga y acelerar la conexión, al tiempo que mejora la seguridad.
La última incorporación es la iniciativa del servidor. Cuando se solicita una página web, el servidor la envía, pero debe esperar a que el navegador web analice el HTML de la página y realice otras solicitudes para los elementos que encuentre en el código, como las imágenes. La iniciativa del servidor permite enviar todos los recursos asociados a una página cuando esta se solicita, sin esperar. Esto reducirá gran parte de la latencia asociada a las conexiones web.
¿La web, versión 2?
Cuando los servidores web y los navegadores web empiecen a implementar HTTP/2 —lo que podría ocurrir dentro de apenas unas semanas—, la navegación web será más rápida y receptiva. También facilitará el trabajo de los desarrolladores, que ya no tendrán que sortear las limitaciones de HTTP 1.1.
De hecho, algunas de las versiones más recientes de los navegadores populares (Firefox v36, Chrome v40 e Internet Explorer v11) ya admiten HTTP/2. En Chrome y Firefox, HTTP/2 se utilizará únicamente a través de conexiones cifradas (SSL); esto, junto con la iniciativa Let’s Encrypt , probablemente impulsará una adopción más amplia del cifrado.
Este artículo se publica en colaboración con The Conversation. Lee el artículo original.
La publicación no implica que el Foro Económico Mundial respalde las opiniones expresadas.
Para estar al día de la Agenda, suscríbete a nuestro boletín semanal.
Autor: Peter Maynard es investigador de doctorado en Sistemas de Seguridad de Redes en Queen’s University Belfast
Imagen: En esta ilustración fotográfica se muestran cables LAN de internet. REUTERS/Tim Wimborne

