Internet se volverá más eficiente gracias a la llegada de HTTP / 2.  Pero, ¿qué es y cómo mejora en HTTP?

¿Qué es HTTP / 2 y cómo afecta el futuro de Internet?

Anuncio Es posible que aún no haya oído hablar de HTTP / 2, pero es la actualización más reciente de HTTP. El nuevo estándar de protocolo introduce algunos conceptos nuevos y hace que la comunicación entre servidores y aplicaciones sea más rápida y eficiente. ¿Qué es HTTP / 2? HyperText Transfer Protocol Version 2, o HTTP / 2, es la primera actualización importante de HTTP en 15 años. El estánda

Anuncio

Es posible que aún no haya oído hablar de HTTP / 2, pero es la actualización más reciente de HTTP. El nuevo estándar de protocolo introduce algunos conceptos nuevos y hace que la comunicación entre servidores y aplicaciones sea más rápida y eficiente.

¿Qué es HTTP / 2?

HyperText Transfer Protocol Version 2, o HTTP / 2, es la primera actualización importante de HTTP en 15 años.

El estándar de protocolo anterior, HTTP / 1.1, ha estado en uso desde 1997 y utiliza una combinación de soluciones alternativas para mejorar las limitaciones de HTTP.

Se basa en SPDY ("rápido"), un experimento de código abierto iniciado por Google para abordar algunos de los problemas y limitaciones de HTTP / 1.1

El Grupo de trabajo de ingeniería de Internet (IETF) especifica los cambios como este en el Protocolo de transferencia de hipertexto versión 2, Borrador 17:

"HTTP / 2 permite un uso más eficiente de los recursos de red y una percepción reducida de latencia al introducir la compresión del campo de encabezado y permitir múltiples intercambios concurrentes en la misma conexión [...]

"También permite priorizar las solicitudes, permitiendo que las solicitudes más importantes se completen más rápidamente, mejorando aún más el rendimiento".

"HTTP / 2 también permite un procesamiento más eficiente de mensajes mediante el uso de marcos binarios de mensajes".

“Esta especificación es una alternativa, pero no obsoleta, a la sintaxis del mensaje HTTP / 1.1. La semántica existente de HTTP permanece sin cambios ".

HTTP / 2 se basa en SPDY

HTTP / 2 se basa en SPDY

Para 2012, la mayoría de los navegadores modernos y muchos sitios populares (Google, Twitter, Facebook, etc.) ya admitían SPDY. A medida que aumentaba la popularidad de SPDY, el Grupo de Trabajo HTTP (HTTP-WG) comenzó a trabajar en la actualización del estándar HTTP.

A partir de este momento, SPDY se convirtió en la base y la rama experimental para nuevas características en HTTP / 2. En ese momento, examinamos cómo SPDY puede mejorar la navegación ¿Qué es SPDY y cómo puede maximizar su experiencia de navegación? ¿Qué es SPDY y cómo puede maximizar su experiencia de navegación? Lee mas . Desde entonces, el estándar de la versión 2 fue redactado, aprobado y publicado.

Muchas de las características de SPDY se incorporaron a HTTP / 2, y Google finalmente dejó de admitir este protocolo a principios de 2016.

La mayoría de los navegadores finalmente dejaron de admitir SPDY, y como no hay alternativas, HTTP / 2 se está convirtiendo en el estándar de facto.

Si bien el estándar de protocolo HTTP / 2 no es estrictamente compatible con HTTP / 1, la compatibilidad se puede lograr mediante la traducción. Un cliente solo HTTP / 1.1 no entenderá un servidor solo HTTP / 2 y viceversa, por lo que la nueva versión del protocolo es HTTP / 2 y no HTTP / 1.2.

Dicho esto, una parte importante del trabajo proporcionado por HTTP-WG es asegurarse de que HTTP / 1 y HTTP / 2 se puedan traducir de un lado a otro sin pérdida de información.

Los nuevos mecanismos o características introducidos también serán independientes de la versión y retrocompatibles con la web existente.

HTTP / 2 no es realmente algo que un usuario pueda implementar, pero hay cosas que podemos hacer para afectar nuestra velocidad de navegación. ¿Crees en alguno de estos mitos comunes para acelerar tu velocidad de Internet? 5 mitos sobre el aumento de la velocidad de Internet y por qué no funcionan 5 mitos sobre el aumento de la velocidad de Internet y por qué no funcionan La velocidad de Internet es una medida crítica en el siglo XXI. Sin embargo, hay mucha información errónea en línea sobre cómo hacer que su conexión sea más rápida. Aquí hay cinco mitos que no debes creer. Lee mas

Los beneficios y características de HTTP / 2

HTTP / 2 viene con algunas excelentes actualizaciones para el estándar HTTP. Algunos de los más importantes son el encuadre binario, la multiplexación, la priorización de flujo, el control de flujo y el empuje del servidor.

Enmarcado binario

Mensaje HTTP en secuencias de trama binaria HTTP / 2
Mensajes HTTP de mfuji09 está licenciado bajo CC-BY-SA 2.5.

Después de la actualización a HTTP2 /, la comunicación del protocolo HTTP se divide en un intercambio de tramas codificadas en binario. Estos marcos se asignan a mensajes que pertenecen a una secuencia particular. Los flujos se multiplexan (entrelazan en cierto sentido) en una sola conexión TCP.

La nueva capa de estructura binaria introduce una nueva terminología; Secuencias, mensajes y marcos.

  • Las secuencias son flujos bidireccionales de bytes que transportan uno o más mensajes.
  • Cada uno de estos flujos tiene un identificador único y puede transportar mensajes bidireccionales utilizando información de prioridad opcional.
  • Los marcos son la unidad de comunicación más pequeña en HTTP / 2 que contiene conjuntos específicos de datos (encabezados HTTP, cargas de mensajes, etc.). El encabezado identificará como mínimo la secuencia a la que pertenece el marco.
  • Los mensajes son un conjunto completo de marcos que se asignan a una solicitud lógica o mensaje de respuesta.
  • Cada mensaje es un mensaje HTTP lógico, como una solicitud o respuestas, compuesto por uno o más marcos.

Esto nos permite usar una única conexión TCP, para lo que en el pasado requería múltiples.

Multiplexación

Ejemplo de multiplexación

HTTP / 1.1 garantiza que solo se pueda entregar una respuesta a la vez por conexión. Y el navegador abrirá conexiones TCP adicionales si el cliente desea realizar múltiples solicitudes paralelas.

HTTP / 2 elimina esta limitación de HTTP / 1.1 y permite solicitudes completas y multiplexación de respuestas. Esto significa que el cliente y el servidor pueden dividir un mensaje HTTP en marcos independientes, que luego se intercalan y se vuelven a ensamblar en el otro extremo.

En general, esta es la mejora más importante de HTTP / 2, ya que en parte eliminará la necesidad de múltiples conexiones. Esto a su vez introducirá numerosos beneficios de rendimiento en todas las tecnologías web.

El número reducido de conexiones significa menos apretones de manos de Seguridad de la capa de transporte (TLS), mejor reutilización de sesión y una reducción general en los requisitos de recursos del cliente y el servidor. Esto hace que las aplicaciones sean más rápidas, simples y económicas de implementar.

Los sitios web con muchos activos externos (imágenes o scripts) verán las mayores ganancias de rendimiento de la multiplexación HTTP / 2.

Priorización de secuencia y dependencia

Las mejoras adicionales de los flujos multiplexados se realizan con dependencias de peso y flujo. HTTP / 2 nos permite asignar un peso a cada flujo (un valor entre 1 y 256), y hacerlo explícitamente dependiente de otro flujo.

Esta combinación de dependencia y peso conduce a la creación de un árbol de priorización, que le dice al servidor cómo el cliente preferiría recibir respuestas.

El servidor utilizará la información en el árbol de priorización para controlar la asignación de CPU, memoria y otros recursos, así como la asignación de ancho de banda para garantizar que el cliente reciba la entrega óptima de respuestas de alta prioridad.

Control de flujo

Los problemas con el control de flujo en HTTP / 2 son similares a HTTP / 1.1. Sin embargo, dado que las secuencias HTTP / 2 se multiplexan dentro de una única conexión TCP, la forma en que funciona el control de flujo en HTTP / 1.1 ya no es eficiente.

En resumen, se necesita control de flujo para detener las corrientes que interfieren entre sí para causar un bloqueo. Esto hace posible la multiplexación. HTTP / 2 permite utilizar una variedad de algoritmos de control de flujo, sin requerir cambios de protocolo.

No se especifica ningún algoritmo para el control de flujo en HTTP / 2. En cambio, se ha proporcionado un conjunto de bloques de construcción para ayudar a los clientes y servidores a aplicar su propio control de flujo.

Puede encontrar los detalles de estos bloques de construcción en la sección "Control de flujo" del borrador de Internet HTTP / 2.

Servidor Push

Su navegador normalmente solicitará y recibirá un documento HTML de un servidor cuando visite por primera vez una página. El servidor debe esperar a que el navegador analice el documento HTML y envíe una solicitud de los activos incrustados (CSS, JavaScript, imágenes, etc.).

En HTTP / 1.1, el servidor no puede enviar estos activos hasta que el navegador los solicite, y cada activo requiere una solicitud por separado (es decir, múltiples enlaces y conexiones).

La inserción del servidor reducirá la latencia al permitir que el servidor envíe estos recursos sin aviso, ya que ya sabe que el cliente los necesitará. Entonces, en el ejemplo anterior, el servidor empujará CSS, JavaScript (un lenguaje de programación común ¿Qué es JavaScript y cómo funciona? ¿Qué es JavaScript y cómo funciona? ¿Qué es JavaScript? Es un lenguaje de programación utilizado para mejorar las páginas web. Incluye la actualización dinámica de páginas web, interfaces de usuario y más. Veamos de qué se trata Javascript. Lea más en las páginas web) e imágenes en el navegador para mostrar la página más rápido.

Básicamente, la inserción del servidor permite que un servidor envíe múltiples respuestas para una sola solicitud del cliente.

Aunque de forma manual, este es el efecto que tenemos actualmente al incorporar CSS o JS en nuestros documentos HTML: estamos enviando el recurso incorporado al cliente sin esperar a que el cliente lo solicite.

Este es un gran paso lejos del estándar HTTP actual del flujo de trabajo estricto de solicitud-respuesta uno a uno.

Las limitaciones de HTTP / 2

Imagen de navegadores que admiten HTTP / 2

SPDY tenía una política un poco más estricta sobre seguridad y requería cifrado SSL para todas las conexiones. HTTPS / 2 no requiere cifrado, pero muchos servicios no servirán HTTP / 2 sin SSL.

Todos los principales navegadores admiten HTTP / 2, pero ninguno de ellos lo admitirá sin cifrado. El sitio web de CanIU tiene una excelente descripción general de la tabla sobre el soporte actual del navegador para HTTP / 2, como se ve arriba.

La compatibilidad con versiones anteriores y las traducciones entre HTTP / 1.1 y HTTP / 2 reducirán la velocidad de carga de la página.

No hay una razón real por la cual el cifrado no debería ser una configuración predeterminada u obligatoria por ahora. Si ya tiene un certificado SSL en su sitio, puede mejorar la seguridad de su sitio web HTTPS habilitando HSTS.

¿HTTP / 2 es la próxima gran cosa?

Comparación del tiempo de carga de HTTP / 1.1 y HTTP / 2

HTTP / 2 se propuso como estándar a mediados de 2015, y la mayoría de los navegadores agregaron soporte para él a fines de ese año. HTTP / 2 ya afecta la forma en que funciona Internet y cómo las aplicaciones y los servidores se comunican entre sí.

No hay requisitos para forzar el uso de HTTP / 2, pero hasta ahora solo ofrece beneficios y ningún inconveniente. También es un cambio bastante menor desde la perspectiva del usuario, uno que la gente realmente no notará.

Según W3Tech, el 31.7% de los 10 millones de sitios web principales actualmente soportan HTTP / 2. La forma más rápida para la mayoría de ustedes de habilitar HTTP / 2 en su sitio web es usar el CDN de Cloudflare.

El próximo estándar propuesto (HTTP / 3) ya está en proceso y se basa en QUIC, otro proyecto experimental de Google. En octubre de este año, el HTTP-WG de IETF y el grupo de trabajo QUIC solicitaron oficialmente a QUIC que se convirtiera en el nuevo estándar mundial y que le cambiara el nombre HTTP / 3.

Si tiene curiosidad, Akamai.com tiene una herramienta rápida para verificar si su navegador es compatible con HTTP / 2. Si no es así, quizás considere cambiar su navegador. 5 Alternativas de Google Chrome para un mejor navegador en computadoras de escritorio o dispositivos móviles. 5 Alternativas de Google Chrome para un mejor navegador en computadoras de escritorio o dispositivos móviles. Chrome es el navegador más popular del mundo. Pero aún tiene problemas. ¿Pueden estos navegadores alternativos ser una mejor opción? Lee mas .

Explore más sobre: ​​Redes de computadoras, HTTP / 2, SPDY.