¿Qué es HTTP/2 y en qué se diferencia con HTTP?

8min

En este artículo vamos a abordar un tema de especial importancia en el mundo de la web y el protocolo HTTP en el que se sustenta. Puede parecer un conocimiento un poco técnico porque se trata de un protocolo de transmisión, pero todos los profesionales que estamos en este medio deberíamos tener claras algunas ideas en este ámbito. Nuestro objetivo principal es que conozcas algunas de las ventanas que ofrece la relativamente nueva versión del protocolo, nombrada como HTTP/2.

Índice

¿Qué es HTTP/2?

HTTP/2 es la segunda versión del Protocolo de Transferencia de Hipertexto (HTTP), creado inicialmente para la comunicación en la World Wide Web pero que actualmente se usa como base para las transferencias de datos de multitud de programas y aplicaciones en red. 

HTTP lleva con nosotros desde hace décadas y sigue funcionando perfectamente. Sin embargo, con el paso del tiempo, las transmisiones y los sitios web se han ido haciendo más sofisticados, por lo que necesitaba una revisión. 

Hace ya años que HTTP/2 fue presentado. A día de hoy se encuentra bastante estable y la mayoría de los servidores web y navegadores ya lo soportan. Incluye varias mejoras respecto a su predecesor (HTTP/1.1), optimizando la forma en que los datos se transfieren por la red, principalmente entre el servidor web y el navegador web del cliente.

Ventajas de HTTP/2

Las ventajas que ofrece HTTP/2 son muy importantes en la web actual. Para no dejarnos ningún detalle, vamos a ir punto por punto.

Mejora en la velocidad de carga

La ventaja más palpable consiste en el aumento de la velocidad con la que los sitios web pueden ser transferidos entre los servidores y los clientes. HTTP/2 introduce una serie de mejoras que aumentan significativamente la velocidad de carga de las páginas web, sobre todo aquellas que requieren la transferencia de múltiples archivos. 

Esto impacta sensiblemente en la experiencia del usuario, ya que, usando la nueva versión del protocolo, los datos consiguen enviarse en menos tiempo, y por tanto, el navegador puede acelerar la carga y representación de la página

Multiplexación: capacidad de enviar múltiples solicitudes y respuestas simultáneamente

En el protocolo HTTP tradicional, cada conexión realizaba la transferencia de un fichero. Actualmente, a diferencia de HTTP/1.1, HTTP/2 permite la multiplexación de solicitudes y respuestas. Esto significa que se pueden enviar múltiples solicitudes de manera simultánea sobre una única conexión TCP. Nuevamente, esto influye de manera notable en el rendimiento de las conexiones.

Compresión de encabezados: cómo HTTP/2 reduce la carga de datos

Las transferencias por HTTP incluyen no sólo el contenido de las páginas o de los ficheros, sino también cabeceras con información técnica que no es visible para el usuario pero que también es importante para las comunicaciones.

HTTP/2 utiliza una técnica llamada «compresión de encabezados» lo que permite reducir el tamaño de las cabeceras del HTTP. Esto disminuye la cantidad de datos que se deben enviar y recibir, mejorando la eficiencia en las transferencias de datos por la red.

Priorización de contenido

Otra de las novedades que aporta la segunda revisión del HTTP es la posibilidad de priorizar recursos. De este modo, los navegadores pueden  indicar qué importancia tienen aquellos elementos que deben ser transferidos, consiguiendo así que se carguen primero los que resultan más críticos.

Menos requisitos de conexión para cargar una página

Con HTTP, debido al hecho de requerir una conexión para cada recurso, eran necesarias múltiples solicitudes al servidor para cargar la información. Ahora con HTTP/2  se necesitan muchas menos solicitudes al servidor. Esto impacta de manera muy importante en las páginas web, ya que cada una tiene decenas de archivos que deben ser transferidos para cargar completamente el contenido. 

Diferencias con HTTP/1.1

Ya hemos explicado las diferencias más notables de cara a los usuarios, pero existen otras que son más relevantes desde el punto de vista del protocolo en sí.

Protocolo SPDY y su influencia en HTTP/2

El protocolo SPDY (pronunciado speedy) fue desarrollado por Google con el objetivo principal de transportar el contenido de las páginas web con mayor velocidad y eficiencia. Este protocolo nunca fue estandarizado, por lo que a día de hoy no se ha establecido para su uso en Internet. Sin embargo, la tecnología se integró en HTTP/2 y sus innovaciones y principios fundamentales constituyeron la base sobre la que se desarrolló la revisión del protocolo. 

Las características fundamentales son las mismas que encontramos en HTTP/2, como la multiplexación de flujos, su priorización, la compresión de los encabezados, etc.

Conexiones persistentes en HTTP/1.1

Aunque HTTP/1.1 también soporta conexiones persistentes, tenía diversos problemas que limitaban su eficiencia. Entre ellos se encuentra el bloqueo de la línea de cabeza  (Head-of-Line Blocking), la limitación del número de conexiones simultáneas, la sobrecarga de la conexión TCP, etc. 

HTTP/2 consiguió resolver esas limitaciones y optimizar las conexiones persistentes para permitir múltiples intercambios de datos con el uso de una única conexión.

Cabeceras multiplexadas

HTTP/2 introduce cabeceras multiplexadas, una mejora significativa en el protocolo que es la base que permite el envío simultáneo de múltiples solicitudes y respuestas. Esta es una diferencia fundamental de HTTP/1.1 que maneja cada solicitud y respuesta de forma estrictamente secuencial.

Compresión y descompresión de datos

La compresión de encabezados en HTTP/2 es más eficiente que la que aportaba la anterior versión HTTP/1.1, lo que contribuye a una transferencia de datos más rápida y ligera.

Implementación y consideraciones del HTTP/2

Para la implementación del protocolo HTTP/2 es necesario tener en cuenta unas consideraciones importantes.

Preparación para la transición a HTTP/2

Compatibilidad y requisitos

Es muy importante asegurarse de que los servidores y clientes sean compatibles con la tecnología HTTP/2. Actualmente podemos estar tranquilos en la mayor parte de los casos, pero habría que verificar el grado de compatibilidad sobre todo cuando tratamos con sistemas antiguos o poco actualizados.

Habilitar el protocolo HTTP/2

Debemos saber que generalmente el protocolo HTTP/2 no se encuentra activado de manera predeterminada. Es por ello que, para habilitar HTTP/2 se debe configurar adecuadamente el servidor, garantizando una implementación correcta.

Configurar y optimizar el contenido

Generalmente el contenido de las páginas web no requiere cambios notables para sacar partido a esta nueva versión del protocolo, ya que su construcción trata de aprovechar las características de las páginas web actuales. Sin embargo, algunas tareas que eran fundamentales anteriormente, como la agrupación de diversos ficheros para una única transmisión ya no resulta tan importante actualmente.

Pruebas y monitorización

En el caso de los ingenieros de sistema y los administradores de red, es necesario realizar pruebas y monitorización para garantizar que HTTP/2 funcione correctamente. Esto puede incluir tests de funcionalidad, de rendimiento, de compatibilidad, etc. incluso puede ser interesante realizar test de carga y estrés y finalmente pruebas de seguridad.

Una vez los sistemas están en funcionamiento es interesante realizar la monitorización de los mismos, analizando los logs, verificando la seguridad de las transmisiones, realizando el análisis del tráfico, etc.

Consideraciones de seguridad para proteger la implementación de HTTP/2

Es muy importante tomar en cuenta la seguridad de las transmisiones cuando se adopta HTTP/2. Esto incluye el uso estricto de TLS (requerido por HTTP/2), la elección de cifrados fuertes, la validación de los certificados, etc.

Medir el Impacto

Una vez hayamos realizado los cambios podemos medir el impacto en el rendimiento de los sitios web y las aplicaciones, de modo que sepamos si la adopción del protocolo justifica su implementación.

Optimización continua y mantenimiento de la configuración de HTTP/2

La implementación de HTTP/2 requiere una constante monitorización de los sistemas para asegurarnos que todo funciona de la manera que se espera, realizando el análisis del tráfico y los recursos del servidor, detectando posibles errores en las transmisiones o el uso del ancho de banda. 

También es importante verificar habitualmente los sistemas realizando pruebas de regresión y de rendimiento, así como recopilar datos que faciliten conocer la experiencia de usuario en el uso de las aplicaciones.

Beneficios de la implementación

A final de cuentas, la incorporación de este nuevo protocolo debe repercutir especialmente en la mejora de la velocidad de los sitios web, siendo los usuarios los mayores beneficiados. 

Impacto en el posicionamiento SEO

Desde hace un tiempo para acá Google viene teniendo en cuenta el rendimiento de los sitios web a la hora de posicionarlos entre los resultados de búsqueda, ya que a mayor rendimiento se consigue una mejor experiencia de usuario

Es por ello que el uso del protocolo HTTP/2 puede aportar beneficios a nivel de SEO, gracias al aumento de la velocidad que puede proporcionar. Por supuesto, ya es el propio Google el que acabará decidiendo el impacto en términos de posicionamiento derivados del  aumento del rendimiento del sitio. Lo que sí es cierto es que ese aumento de la velocidad representará mayores probabilidades de conseguir un mejor posicionamiento.

Fernán García de Zúñiga

Productos relacionados: