Llega HTTP/3, la última (y renovada) versión de HTTP
HTTP es uno de los principales protocolos que posibilitan el funcionamiento de internet. Un protocolo de comunicación cuya primera versión aún sigue en uso entre aquellos usuarios que aún no han instalado en su sitio web un certificado de seguridad SSL. Y es que para utilizar HTTP/2, actualmente la última versión de HTTP, es necesario tener una web cifrada, ya que los principales navegadores no cuentan con soporte para HTTP/2 sin SSL.
Aunque la adopción de HTTP/2 sigue en aumento, en su obsesión por intentar mejorar la velocidad de las páginas web un grupo de trabajo lleva unos años trabajando en QUIC, el nuevo protocolo HTTP/3.
De HTTP/1 a HTTP/2
Con el tiempo el número de usuarios en internet ha ido creciendo y las conexiones se han hecho cada vez más rápidas. Por no hablar de que la complejidad y frecuencia de los ciberataques ha evolucionado casi en la misma proporción. Todo ello ha ocasionado que el número de peticiones que se realizan desde un cliente a un servidor haya aumentado y que sea necesario implementar medidas de seguridad más potentes.
En este sentido, el HTTP original maneja de forma independiente cada una de estas peticiones, estableciendo una conexión diferente para cada una de ellas, además de no ser un protocolo cifrado por defecto. Esto puede hacer que si alguna de las peticiones es lenta se acabe produciendo un bloqueo en los encabezados de línea (HOLB). En este caso, todas las peticiones que sigan a esa petición lenta serán igualmente lentas y acabará perjudicando al sitio web.
HTTP/2 y la gestión de peticiones
Para solucionar este problema de gestión de las peticiones, HTTP/2 introdujo la multiplexación. Una técnica que permite responder a diferentes peticiones de forma simultánea utilizando una misma conexión. Este gran cambio que hace que no sea necesario esperar a que se complete una petición para iniciar otra, consiguió mejorar la velocidad de carga de una página web siempre que no se produzcan problemas de conexión. A pesar de que, técnicamente, HTTP/2 consigue mejorar la velocidad de carga, la nueva versión del protocolo no ha podido escapar de las limitaciones de TCP.
Al enviarse todas las peticiones en una única conexión TCP, todos los paquetes dependen de que el protocolo haga bien su trabajo. Así, en el caso de que se perdiera alguno de estos paquetes, los que han sido correctamente enviados tendrán que esperar a que se consiga recuperar todos aquellos que se han perdido. Porque solo será posible establecer la conexión cuando todos los paquetes se hayan entregado correctamente.
Más allá de los problemas ocasionados por las limitaciones de TCP, HTTP/2 se ha encontrado con que en algunos casos la velocidad de carga no solo no se mejora, sino que se empeora. Esto se debe a que para poder utilizar HTTP/2 es necesario tener instalado un certificado de seguridad en la web. Y, en ocasiones, el cifrado puede hacer que los tiempos de respuesta del sitio web aumenten.
HTTP-over-QUIC o HTTP/3
Prácticamente desde que se presentó HTTP/2 se ha trabajado por seguir mejorando el protocolo HTTP. Tanto que en 2017 Google ya había publicado una guía sobre QUIC, su segunda tecnología experimental que al igual que SPYDY acabaría convirtiéndose en un protocolo. Así, si SPDY supuso el nacimiento de HTTP/2, QUIC haría lo propio con HTTP/3.
La principal diferencia entre ambos protocolos nacidos de la experimentación de Google es que HTTP/3 supone una redefinición de HTTP. Y es que el protocolo HTTP/3 no se basa en TCP, como han hecho las anteriores versiones de HTTP, sino que apuesta por UDP como protocolo de transporte. Una declaración de intenciones que se encuentra en el nombre que Google le dio a su versión preliminar: QUIC – Quick UDP Internet Connections.
El motivo por el que el equipo de Google optó por UDP como forma de escapar de las limitaciones de TCP es que ambos protocolos de transporte son soportados por la gran mayoría de los dispositivos. Optar por otro protocolo hubiera supuesto, además de la redefinición de HTTP, la de todos los sistemas operativos, aplicaciones y equipos. Aun así, UDP no goza de la misma popularidad que TCP, el considerado protocolo de moda desde hace unas cuantas décadas.
En un primer momento el equipo de Google decidió que QUIC se basaría únicamente en el transporte HTTP recurriendo a la sintaxis de HTTP/2. Tras las recomendaciones del IEFT se modificó para que pudiera transportar más que solo HTTP y que recurriría a TLS 1.3 como forma de cifrado. Además de posibilitar la compatibilidad retroactiva al hacer que HTTP/3 incluya a sus versiones anteriores en la respuesta. Una serie de cambios que mejoran la velocidad del protocolo y reducen su latencia al simplificar el proceso de negociación.
Resolviendo los problemas de HTTP/2
Esta última versión de HTTP supone una nueva forma de resolver los problemas del protocolo valiéndose de UDP para acelerar las conexiones. Un aspecto especialmente relevante en el caso de redes lentas en las que, además de una gran latencia, se pierden muchos paquetes.
Con HTTP/3 dejan de producirse los problemas de flujo experimentados por HTTP/2. Cada petición que se realice en la nueva versión de HTTP se responderá de manera independiente. De forma que incluso si una petición fallara el resto llegarían a su destino, en lugar de tener que esperar a que se recuperen los paquetes perdidos. Lo que hará que mejore la experiencia de usuario y que la velocidad de carga del sitio web no se vea perjudicada.
Más allá de las mejoras en cuanto a velocidad y eficiencia de los paquetes que se envían, HTTP/3 estará cifrado por defecto. Algo que en HTTP/2 solo se conseguía mediante la instalación de un certificado SSL, ya que el estándar HTTP por sí mismo no está encriptado.
HTTP/3 en la actualidad
En este momento el protocolo se encuentra en un plan preliminar que expirará en apenas unos días. A partir de ese momento, HTTP/3 pasará a convertirse en un estándar oficial.
El propósito de Google es que con el tiempo QUIC-HTTP/3 se convierta en el sustituto de los clásicos TCP y UDP. Una nueva forma de mover datos con mayor rapidez y seguridad, al ser un protocolo cifrado por defecto, que ya ha sido probado. Teniendo en cuenta la multitud de servicios de Google, la compañía implementó en 2013 HTTP-over-QUIC en gran parte de internet sin necesidad de esperar a la aprobación de la IEFT, el organismo encargado de regular estándares en internet. De tal manera que en 2017 un 7% del tráfico total de internet ya utilizaba QUIC. Aunque otras grandes empresas como Facebook también han comenzado a aceptar el protocolo HTTP/3, solo un 1.2% de los servicios son compatibles con esta tecnología.
Por el momento, esta intención se ha encontrado con dos obstáculos. Por un lado, que hasta ahora los únicos navegadores que soportan QUIC son Chrome y Opera. De forma que si utilizas cualquier otro la conexión se producirá a través de HTTP/2, siempre que se cuente con una web cifrada bajo HTTPS; si no, se estará utilizando HTTP/1. Por otra parte, hay muchos que consideran que se trata de un cambio muy precipitado teniendo en cuenta que la adopción de HTTP/2 no llega al 40%.
Es evidente que HTTP/2 ha mejorado la velocidad de carga de los sitios web pero no ha conseguido superar algunas de las limitaciones que le ha impuesto el uso de TCP. Problemas que, técnicamente, se solucionarían con el cambio de protocolo a HTTP/3, algo que podría comenzar en las próximas semanas.