HTTP/2: características y mejoras

HTTP protocol timeline from HTTP/0.9 to HTTP/2 and HTTP/3

HTTP/2 aparece en 2015 para reemplazar al protocolo HTTP/1.1 e introducir numerosas mejoras. Esta versión del protocolo incorporó grandes cambios, mejoró significativamente la transferencia de datos y, como resultado, también impulsó la aceleración de la velocidad de carga de las páginas web.

De HTTP/1.1 a HTTP/2

Desde el lanzamiento de HTTP/1 en 1996 y HTTP/1.1 en 1997, el protocolo HTTP se había ido manteniendo actualizado para perfeccionar la transferencia de datos en la red, pero sin grandes actualizaciones. Es realmente con HTTP/2 cuando se introducen mejoras significativas para acelerar la velocidad de carga web. De hecho, es probable que su avance y aprobación estuvieran impulsados en gran medida por la presión de Google y su proyecto de protocolo «SPDY», que luego sirvió de base para HTTP/2.0.

HTTP/2 fue desarrollado por el grupo de trabajo HTTP de la IETF («Grupo de Trabajo de Ingeniería de Internet» en español), que lo presentó como Estándar Propuesto en diciembre de 2014. Tras su aprobación, la especificación (RFC 7540) se publicó en mayo de 2015 y su implantación fue relativamente rápida gracias al apoyo de grandes organizaciones como Google y muchos servicios de CDN. Para finales de 2015, la mayoría de los navegadores principales ya habían añadido soporte para HTTP/2, según datos de CanIuse.

A fecha de marzo de 2023, en torno al 40 % de los sitios web usan HTTP/2, según datos de W3Techs. Una tasa de uso aún bastante por encima de la de HTTP/3, que solo lo usan en torno al 25 % de los sitios web.

HTTP/2, mejorando la comunicación y la velocidad

Tuvo que pasar más de una década para que este HTTP sufriera la gran actualización que supuso HTTP/2. De hecho, es probable que la presión de Google, con su proyecto de protocolo «SPDY» (que luego sirvió de base para HTTP/2.0), contribuyera a su avance y aprobación.

HTTP/2 continuaba siendo 100 % compatible con la versión 1.0 y 1.1. Mantenía los mismos códigos de estado (1XX, 2XX, 3XX, 4XX, 5XX), los métodos (GET, POST, PUT, HEAD, etc.), las cabeceras HTTP y las URIs. Sin embargo, introducía cambios significativos en la manera en la que los datos se formatean y se transportan entre el cliente y el servidor y numerosas mejoras que permitían aumentar en gran medida la eficiencia del protocolo.

Cambios y mejoras de HTTP/2.0

  • Eliminación de la información redundante. Elimina información redundante para reducir la latencia y el consumo de recursos.
  • Multiplexación. Da solución al problema llamado «Head-of-line blocking» de HTTP/1.1, que provocaba que solo se pudiera usar una única solicitud por conexión TCP. Con HTTP/2 se pueden resolver varias peticiones a la vez y evitar así que se genere congestión. No obstante, esta mejora mitiga pero no elimina la limitación de la descarga lineal, que sigue estando limitada por TCP. Este problema de bloqueo se resuelve finalmente en el protocolo HTTP/3, con la integración del protocolo UDP.
  • Protocolo binario. HTTP 2.0 es un protocolo binario y, por lo tanto, facilita encontrar el comienzo y el final de cada frame (complicado de realizar en un protocolo de texto), y también reduce la probabilidad de error.
  • Servicio «server push». Permite la carga de archivos como CSS, JavaScript, imágenes, etc., desde el servidor, sin que éste lo solicite. Ya no es necesario esperar a que el navegador interprete el HTML para continuar la descarga del resto de elementos de una web.
  • Compresión de cabeceras para transmitir menos información. Con el uso del algoritmo HPACK6 se reduce el tamaño de las cabeceras. Esto mejora el tiempo de respuesta y la eficiencia, sobre todo en móviles.
  • Priorización de flujos. Permite priorizar qué paquetes son más importantes en la comunicación cliente-servidor-cliente. De esta forma se puede dar prioridad a los objetos más relevantes.
  • Cifrado TLS opcional. En HTTP/2 el uso del cifrado TLS (Transport Layer Security) es opcional. Sin embargo, a la hora de adoptar el nuevo protocolo, la mayoría de navegadores hicieron obligatorio el uso de un SSL para garantizar mayor seguridad; aunque supusiera cierta ralentización.

En resumen, la versión 2.0 del protocolo HTTP permite disponer de una carga mucho más rápida para todos los recursos de las páginas web.

El protocolo HTTP

El protocolo HTTP nace de la necesidad de contar con protocolos de comunicación sencillos, que faciliten la comunicación y el acceso a la información en Internet. El CERN lanzó la primera versión del protocolo HTTP en 1991 (HTTP/0.9), combinando diferentes tecnologías para su creación:

  • Documentos de Hipertexto.
  • Recuperación de la información basada en la red.
  • El lenguaje Standard Generalized Markup Language (SGML o «Lenguaje de marcado generalizado estándar» en español), que sirve para definir lenguajes de marcado generalizados para documentos.

Para mayor seguridad, la versión HTTPS aparece para encriptar las comunicaciones del protocolo HTTP, usando SSL/TLS.

La nomenclatura de una llamada HTTP o HTTPS es la siguiente:

https://[dominio o ip]:[puerto]/[ruta y/o fichero]?[atributo]

Cabe destacar también que el protocolo HTTP no tiene estado, es decir, cada comunicación entre cliente y servidor no mantiene información alguna. Por eso, a medida que fue surgiendo la necesidad de almacenar cierta información, se fueron desarrollando algunas estrategias que permitieran gestionar los estados, como es el caso de las cookies y las sesiones.

La evolución de protocolos clave como HTTP es indispensable en el contexto de evolución continua de Internet y de la World Wide Web.

Fuentes: CanIuse y W3Techs.

Si te ha gustado, compártelo en redes sociales

Configuración de las cookies
Stackscale, Grupo Aire logo

Al aceptar las cookies acepta voluntariamente el tratamiento de sus datos. Esto también incluye, por un tiempo limitado, su consentimiento de acuerdo con el Artículo 49 (1) (a) RGPD para el procesamiento de datos fuera del EEE, por ejemplo, en los EE.UU. En estos países, a pesar de una cuidadosa selección y obligación de los proveedores de servicios, no se puede garantizar el alto nivel europeo de protección de datos.

Si los datos se transfieren a los EE.UU., existe, por ejemplo, el riesgo de que las autoridades de los EE.UU. procesen estos datos con fines de control y supervisión sin que estén disponibles recursos legales efectivos o sin que se puedan hacer valer todos los derechos del interesado. Puede revocar su consentimiento en cualquier momento.

Cookies necesarias

Son aquellas que ayudan a hacer una página web utilizable activando funciones básicas como la navegación en la página y el acceso a áreas seguras de la página web. La página web no podrá funcionar adecuadamente sin estas cookies. Le informamos de que puede configurar su navegador para bloquear o alertar sobre estas cookies, sin embargo, es posible que determinadas áreas de la página web no funcionen. Estas cookies no almacenan ninguna información de identificación personal.

- moove_gdpr_popup

Cookies analíticas

Son aquéllas que permiten al Editor de las mismas, el seguimiento y análisis del comportamiento de los usuarios de los sitios web a los que están vinculadas. La información recogida mediante este tipo de cookies se utiliza en la medición de la actividad de los sitios web, aplicaciones o plataformas y para la elaboración de perfiles de navegación de los usuarios de dichos sitios, aplicaciones y plataformas, con el fin de introducir mejoras en función del análisis de los datos de uso que hacen los usuarios del servicio.

Google Analytics: Registra una identificación única que se utiliza para generar datos estadísticos acerca de cómo utiliza el visitante el sitio web. La información generada por la cookie sobre su uso de este sitio web generalmente se transmite a un servidor de Google en los EE. UU. y es almacenada allí por Google LLC, 1600 Amphitheatre Parkway Mountain View, CA 94043, EE.UU.

- _dc_gtm_UA-30121999-1

- _ga_C3BSYFJ6DM

- _gat_gtag_UA_30121999_1

- _ga

- _gcl_au

- _gid