¿Te ha gustado el artículo?
9
¿Te ha gustado el artículo?
9

HTTP/2: las mejoras en la transferencia de datos en Internet

Internet se caracteriza por estar en constante desarrollo, especialmente como consecuencia de sus avanzadas tecnologías, la vertiginosa creación de nuevos contenidos y la creciente demanda por parte de los usuarios. Páginas web creadas hace varios años se enfrentan hoy a sitios web perfectamente adaptados para el visitante, optimizados para diferentes dispositivos y con una fuerte presencia online. Los tiempos de acceso y la transferencia de datos juegan un papel crucial en la correcta visualización y funcionamiento de este tipo de páginas web. El protocolo HTTP/2 es un perfecto ejemplo de este constante desarrollo, con el que se pretende reducir significativamente los tiempos de carga del hasta ahora utilizado HTTP/1.1.

¿Qué es HTTP?

Para acceder a una página web, es necesario implementar diferentes protocolos de red que, organizados en varias capas de aplicación, se encargan de regular la entrega y transferencia de datos. Uno de los protocolos en la capa superior de aplicación es el Hypertext Transfer Protocol (HTTP). Este protocolo de transferencia envía al navegador el hipertexto de la web, para que este lo convierta en texto, imágenes o videos, comunicando a los navegadores con los servidores web donde están alojadas las diferentes páginas web.

Técnicamente, cada unidad de comunicación está compuesta por dos áreas: la cabecera, también llamada HTTP Header, y el cuerpo del mensaje (del inglés “Message Body”). La cabecera proporciona toda la información relevante acerca de cómo se debe interpretar el cuerpo del mensaje, pues es quien contiene los datos del usuario.

En 1989, la Organización Europea para la Investigación Nuclear en Suiza (CERN) comenzó con el desarrollo del protocolo HTTP, así como de los otros dos pilares de la World Wide Web, URL y HTML. En mayo de 1996, se lanzó oficialmente la versión RFC 1945 (Request for Coments), publicada bajo el nombre de HTTP/1.0. Esta versión sería sustituida en junio de 1999 por la actual HTTP/1.1. Desde mayo de 2015, RFC 7540 se adoptó como sucesor de HTTP/2, revolucionando así la transmisión de datos en Internet.

El desarrollo de HTTP/2

En 2009 Google presentó SPDY, una alternativa a HTTP/1.1. La mayor crítica a la entonces antigua versión HTTP sigue siendo que el protocolo de transmisión representa un freno innecesario para páginas web complejas: con HTTP/1.1 es necesario establecer una nueva conexión TCP/IP para cada archivo, por ejemplo. Con la creación de SPDY, Google resolvió este problema mediante la multiplexación de transferencias, con la que se puede enviar cualquier número de documentos a través de una conexión TCP/IP. En 2012, con un diseño basado en el protocolo SPDY creado por Google, la Internet Engineering Task Force (IETF) comenzó a trabajar en el protocolo HTTP/2. Sin embargo, el protocolo de Google tenía tales deficiencias y vulnerabilidades en cuanto a seguridad que la gran cantidad de cambios que hubo que llevar a cabo llevaron a HTTP/2 a no parecerse casi a su predecesor.

Estas son las características del HTTP/2

Un rasgo característico de este protocolo, mencionado anteriormente, es que con el fin de transferir los diferentes elementos de una página web a un cliente/navegador, tales como archivos JavaScript, CSS o imágenes, era necesario abrir y cerrar conexiones TCP/IP independientes. Por su parte , HTTP/2 permite la multiplexación, la cual permite cargar completamente una página web usando una única conexión. Además, ofrece al servidor la posibilidad de transferir datos al cliente sin que este los solicite (Server Push).

Con HTTP/2 los paquetes de componentes de una web son enviados de manera prioritaria, enviando primero, por ejemplo, aquellos elementos responsables del diseño web. En comparación con el HTTP/1.1, el Header HTTP2 comprime y envía omitiendo toda información superflua. Otra innovación es el uso de un código binario para la comunicación (en lugar de archivos de texto), lo que la hace más fácil y menos propensa a errores.

En resumen, las innovaciones del protocolo HTTP/2 son:

  • Una conexión entre un navegador (cliente) y una web
  • Multiplexación para el intercambio de archivos
  • Intercambio de mensajes en código binario
  • Cabecera HTTP altamente comprimida
  • Server push para transmisión de datos
  • Prioriza elementos importantes de una web

Las nuevas características de HTTP / 2 se ilustran en este video de Akamai Technologies:

Transcripción []

La Web tiene hoy 25 años y la forma que tienen los navegadores de hablar con la página web, el protocolo HTTP, no ha cambiado mucho desde entonces. Sí ha cambiado, sin embargo, el modo en que usamos la Web, y es ahí donde las limitaciones de HTTP/1 ya comienzan a notarse. Las páginas se cargan más lentamente de lo que deberían y el uso de la red es demasiado ineficiente y esto ocurre porque HTTP/1 solo permite enviar una petición por conexión TCP cada vez.

El hecho de que las páginas web modernas a menudo necesiten hacer más de un centenar de peticiones para cargar JavaScript, CSS e imágenes representa un gran problema. Hoy en día los navegadores utilizan varias conexiones por página para poder descargar todos estos activos, pero no pueden usar demasiadas porque ello sobrecargaría la red, lo que congestionaría los datos aún más, de modo que suelen utilizar entre cuatro y ocho conexiones, con respecto a lo que se estima el número de peticiones que se tienen que enviar en cada una, algo que a veces da lugar a errores.

El gran número de peticiones de una página web también origina otro problema: cada petición incluye un set de cabeceras de HTTP que ha ido creciendo con el tiempo gracias a elementos como las cookies y que pueden aumentar la cantidad de datos que se envían. En las redes móviles de alta latencia esto tiene un impacto muy significativo en el rendimiento. Todo esto ha hecho que HTTP/1 sea lento y cada vez más difícil de usar. Muchas páginas web intentan enfrentarse a este problema dando ciertos rodeos, usando técnicas como el CSS printing, el inlining y la concatenación, que, si bien ayudan, también son una señal de que las cosas pueden hacerse mejor.

Es por todo esto que en 2012 se comenzó a trabajar en HTTP/2. Este nuevo protocolo, basado en el proyecto Speedy, permite utilizar una conexión para toda la comunicación entre tu navegador web y una página web. Esto se lleva a cabo dividiendo los mensajes de petición y de respuesta en pequeños bloques que se denominan “frames” y etiquetándolos, de modo que se puedan volver a ensamblar cuando lleguen al receptor. Este proceso de denomina multiplexación y permite usar una red de una forma mucho más eficiente, ya que se pueden enviar varios mensajes a la vez, a diferencia de con HTTP/1. Adicionalmente, HTTP/2 también permite comprimir las cabeceras, ahorrando al ancho de banda una gran cantidad de información redundante. Esto es lo que hace posible cargar páginas mucho más rápido, porque, aun teniendo que realizar un gran número de peticiones, como hacen muchas, estas tardan menos en recorrer la red. Otro tipo de optimizaciones, como el server push, facilitan que una página envíe respuestas incluso antes de que el navegador las necesite, lo que, de nuevo, mejora el rendimiento.

Los primeros resultados indican que el simple cambio a HTTP/2 permitirá en la mayor parte de los casos una mejora del rendimiento de entre un cinco y un cincuenta por ciento, algo sustancialmente superior con algunos ajustes. Es importante saber que el nuevo protocolo no modifica aspectos como los métodos HTTP. Las cabeceras o los códigos de estado que usan las API de HTTP no cambiarían mucho y, como se puede usar sobre la base del transporte hop-by-hop, no hay que actualizar toda la infraestructura al mismo tiempo.

HTTP/2 está casi listo y pronto ha de estar soportado por navegadores tan populares como Firefox, Internet Explorer y Google Chrome. También Akamai soportará HTTP/2, llevando al nuevo protocolo a una gran parte de la Web.

Protocolo HTTP/2: compatibilidad con el navegador

Desde su lanzamiento, HTTP/2 ha hecho grandes avances. Actualmente, varios navegadores y servidores web admiten el nuevo protocolo de Internet. Mozilla Firefox lo implementa, por ejemplo, desde febrero de 2015 (versión 36). Sin embargo, todas las versiones anteriores tienen en común que aquellas webs que usan HTTP/2 solo pueden ser cargadas sobre TLS –la versión encriptada del protocolo de transmisión.

Hecho

actualmente, el 80 % de los navegadores es compatible con HTTP/2. A excepción de Opera Mini, del navegador de Blackberry, de IE Mobile y del UC Browser para Android, en marzo de 2017 las últimas versiones de los navegadores más populares que soportan el protocolo. Aquí encontrarás una panorámica general sobre todos los navegadores compatibles.

El número de páginas web que utiliza el nuevo protocolo de transmisión es, en comparación con el número de navegadores que lo soportan, considerablemente bajo. Sin embargo, en un solo año, esta cifra ha aumentado notablemente: hacia finales de septiembre de 2016, de un 1,2 % a casi un 10 %, y en marzo de 2017, el 12,7 % de todas las páginas web utilizabaHTTP/2. En esta web encuentras información sobre la situación actual.  Hasta el momento han sido principalmente operadores de sitios web con un alto número de visitas, como Google o Twitter, quienes han cambiado al protocolo HTTP/2. Teniendo en cuenta las ventajas y el creciente soporte por parte de los navegadores web, es solo una cuestión de tiempo el que la mayoría de páginas web empiecen a utilizar HTTP/2.

Consejo

defecto, todos los packs de alojamiento web de 1&1 que incluyen el certificado SSL, garantizan la entrega de paquetes con HTTP/2.

A continuación te mostramos qué navegadores son compatibles con HTTP/2:

IEEdgeFirefoxChromeSafariOperaiOS SafariAndroid BrowserChrome para Android
11*14505510*429.35355
15515610.1*4310.2
5257TP*44
5358
5459

*compatibilidad parcial

Una mirada hacia el futuro

Si bien es cierto que no es obligatorio implementar HTTP/2, hacerlo representa muchas ventajas. Una de ellas es que, desde finales de 2014, el cifrado SSL/TLS es un factor importante para un buen posicionamiento en Google, por lo que no debe ser dejado completamente de lado. Así, en caso de que estés considerando certificar tu página web, lo mejor será cambiar a HTTP/2 y conseguir, por lo tanto, un certificado TLS.

La aplicación de HTTP/2 aportará dos factores importantes para un buen ranking en buscadores. En primer lugar, con tiempos de carga más cortos, el contenido de una web será mejor valorado por Google y sus visitantes se beneficiarán de un tiempo de acceso más corto. En segundo lugar, el protocolo HTTP/2 se asegura de que los tiempos de carga de una página web estén significativamente por debajo del umbral de dos segundos fijado por Google –después de los cuales difícilmente una web será rastreada. HTTP/2 permite entonces que el Googlebot rastree regularmente una web y que esta sea indexada más rápido.

Consejo

¿Quieres que tu sitio web sea más seguro? Infórmate aquí sobre los certificados SSL de 1&1 y cómo aumentan el nivel de confianza de tu página.  

HTTP Seguridad Navegador Tiempo de Carga