HTTP/2 listo, llegará a los navegadores en cuestión de semanas


El grupo de trabajo de HTTP de la Internet Engineering Task Force ha finalizado su trabajo sobre el Protocolo de transferencia de hipertexto 2, el sucesor de los protocolos HTTP/1.0 y HTTP/1.1 que son el núcleo de la Web.

El grupo de trabajo ha finalizado dos especificaciones estrechamente relacionadas. La primera es HTTP/2 en sí. El segundo se llama HPACK, una especificación para la compresión de las cabeceras de HTTP/2.

El trabajo sobre HTTP/2 se inició en 2012 en respuesta al desarrollo del protocolo SPDY de Google. Google creó SPDY para abordar una serie de quejas de rendimiento que la empresa tenía con HTTP tradicional.
Tal vez el mayor problema con HTTP/1.x era su uso de múltiples conexiones para cargar recursos en paralelo. Mientras que una sola conexión HTTP/1.x entre un cliente y un servidor se puede utilizar para solicitar varios objetos diferentes (las imágenes, CSS y JavaScript que una página HTML puede requerir), los objetos tienen que ser servidos en orden, una después de la otra. Si un objeto tarda mucho tiempo, tal vez porque es muy grande o tal vez debido a que requiere una gran cantidad de tiempo de servidor para crear, a continuación, todos los demás objetos solicitados posteriormente tendrán que esperar.

Como resultado, la mayoría de las conexiones HTTP/1.x utilizan para solicitar un solo objeto. Los clientes Web realizan carga paralela de los objetos que necesitan, pero lo hacen mediante la creación de múltiples conexiones a cada servidor. Pero esto tiene su propio costo: utiliza recursos de red adicionales, y se necesita tiempo extra, con cada conexión individual que requiere varios servicios de transporte desde el cliente al servidor y viceversa.

HTTP/2 aborda directamente esta cuestión. En HTTP/2, múltiples flujos bidireccionales son multiplexados sobre una única conexión TCP. Cada corriente puede llevar un par de solicitud/respuesta, y múltiples peticiones a un servidor se puede hacer mediante el uso de múltiples flujos. Sin embargo, las corrientes son todas independientes; si una corriente es lenta, la conexión HTTP/2 todavía se puede utilizar para transferir datos pertenecientes a otras corrientes. Del mismo modo, un cliente puede solicitar un objeto grande y luego un objeto pequeño, y la respuesta al objeto pequeño se puede dar antes o incluso durante, la respuesta del gran objeto. La espera y el procesamiento secuencial que son una característica de HTTP/1.x no son necesarios en HTTP/2. La especificación recomienda que los clientes y los servidores soporten al menos 100 corrientes diferentes en una sola conexión.

HTTP/2 también trae algunos otros cambios para mejorar el rendimiento y las capacidades. Tradicional HTTP/1.x es un protocolo de texto, con peticiones y respuestas utilizando texto legible para el humano. HTTP/2 es un protocolo binario que divide las solicitudes y respuestas en secuencias de tramas no legibles que se transmiten a través de la conexión TCP. HTTP/2 también permite a los servidores impulsar los flujos a los clientes sin aquellos clientes que tienen que hacer la solicitud inicial.

Aunque es un protocolo binario, HTTP/2 no cambia la semántica subyacente de una conexión HTTP. Las solicitudes y las respuestas siguen divididos entre los encabezados y (opcionalmente) cuerpos, con los encabezados utilizados para proporcionar metadatos importantes sobre los cuerpos. Más bien, el protocolo es una nueva forma de expresar esos mismos mensajes diseñados para que la comunicación HTTP sea más eficiente.

La siguiente mejora es HPACK, una forma de compresión de los encabezados HTTP enviados a través de 2 conexiones HTTP que evita la falla CRIME. A diferencia de gzip, que es un algoritmo general de compresión propósito, HPACK está diseñado específicamente para las necesidades HTTP/2.

Los navegadores están en su camino hacia el apoyo a la nueva especificación. Chrome 40 incluirá soporte HTTP/2, con Google anunciaba a principios de este mes que el apoyo SPDY se eliminaría de Chrome a principios de 2016. Mozilla ha dicho que Firefox 36, que será liberado la semana que viene, va a utilizar conexiones HTTP/2 usando borradores 14 y 15 de la especificación. Firefox 37 y 38 se sumará proyecto 16. La versión definitiva, tendra que venir con la versión que le siga. Windows 10 Technical Preview también incluye soporte para el proyecto 14, y el navegador Project Spartan que estará reemplazando Internet Explorer incluirá soporte para HTTP/2.

Fuente: ArsTechnica
Siguenos:
¿Usas Feedly? Suscribete:
follow us in feedly
Anuncios
Lo Más Popular