HTTP/3

HTTP/3 es el nuevo miembro de la familia de protocolos HTTP y ha llegado para sustituir a sus antecesores HTTP/1, HTTP/2 y HTTP-over-QUIC. Actualmente, HTTP/3 se encuentra en proceso de desarrollo, pero ya se ha implementado en los navegadores Google Chrome, Microsoft Edge y Firefox, así como en Safari desde abril de 2020.

La tercera generación del estándar HTTP nació originalmente como HTTP-over-QUIC y, como protocolo experimental, se basaba en UDP. En un principio, se consideró HTTP-over-QUIC como un sustituto potencial de HTTP/2, pero desde enero de 2020 este proyecto avanza oficialmente con el nombre de HTTP/3. Ahora solo queda esperar y ver con qué rapidez se impone el nuevo estándar. En cualquier caso, HTTP/3 promete reducir el tiempo de carga y aumentar la seguridad gracias a la transferencia de datos por UDP. No obstante, aunque el 80 % de los navegadores es compatible con HTTP/2 desde su publicación en 2015, su uso por parte de los proveedores avanza lentamente, lo que nos hace pensar que HTTP/3 tampoco será recibido con los brazos abiertos.

¿Qué es HTTP/3?

En noviembre de 2018, tan solo tres años después de presentar el estándar HTTP/2, el Grupo de Trabajo de Ingeniería en Internet (IETF) publicó el nuevo estándar de protocolo de transferencia de hipertexto HTTP/3. Pero el IETF no descubrió nada nuevo con este nuevo protocolo: únicamente supo reconocer los signos de nuestro tiempo y concibió un protocolo web que ofrecía una transferencia de datos más rápida, un incremento en la seguridad y conexiones más eficaces. Ya en 2012, Google había desarrollado el verdadero sucesor de HTTP/2, llamado QUIC (Quick UDP Internet Connections) y lo había implementado como HTTP-over-QUIC en variedad de productos.

En todo caso, el estándar HTTP/3 engloba las ventajas de los protocolos de transferencia ya existentes HTTP/2 y HTTP-over-QUIC, logrando una transferencia de datos más rápida y estable. Si todo avanza según lo previsto, HTTP/3, que sigue un planteamiento basado en QUIC o UDP, sustituirá a HTTP/2, basado en TCP.

¿Qué contiene HTTP/3?

Para comprender la mecánica de HTTP/3, en primer lugar, es necesario entender cómo funcionan QUIC, UDP y HTTP/2, pues HTTP/3 es básicamente una amalgama de estos componentes. Ya el mismo nombre HTTP-over-QUIC indica que la transferencia de datos no se hace por TCP, sino por UDP.

HTTP/2 utiliza TCP como el protocolo de transferencia más extendido en internet. TCP establece conexiones mediante handshakes de varias fases y transfiere paquetes de datos cronológicamente; además, solo prosigue una transferencia si un paquete ha sido transmitido con éxito. La seguridad de las transferencias se da a través de los llamados acks, es decir, confirmaciones de petición y entrega y números de verificación. Los datos transferidos por TCP contienen un encabezado con parámetros que ayudan a los procesos del emisor a conectarse con los procesos peer del receptor.

En lo que se refiere a la transferencia de datos completa, TCP es muy fiable. Sin embargo, no se puede decir lo mismo en lo referente a la congestión de datos y los tiempos de carga, pues, cuando se pierde un paquete de datos, todas las transferencias se detienen hasta que este llega. Con HTTP/2, la familia de protocolos de internet alcanzaba su límite, porque no era posible acelerar la transferencia de datos sin un protocolo nuevo.

Por lo tanto, Google tomó la iniciativa y desarrolló QUIC, su propio protocolo de transferencia. QUIC evita la congestión de carga por TCP recurriendo a la transferencia por UDP, que se basa en datagramas y no requiere conexión. Al igual que TCP, UDP trabaja en la capa de transporte, pero, por el contrario, renuncia a las confirmaciones de emisor y receptor. Cada transferencia no tiene que esperar a la anterior y los trayectos de ida y vuelta entre cliente y servidor se acortan considerablemente. El IETF reconoció las ventajas de este nuevo protocolo y lo presentó en 2018 como HTTP-over-QUIC, la versión que sustituía a HTTP/2.

Básicamente, el protocolo de transporte HTTP se mantiene igual. Se sigue componiendo de un encabezado (header) y un cuerpo de mensaje (body), y emplea verbos, cookies y caché. La diferencia reside en la forma de transferir los datos y en la disponibilidad del cifrado integrado.

¿Qué funciones tiene HTTP/3?

Para que el protocolo HTTP/2 funcionara mediante QUIC, era necesario modificar funciones concretas (mediante el experimental HTTP-over-QUIC), lo que llevó a crear HTTP/3.

La nueva función más importante de la tercera generación de HTTP es la utilización exclusiva de URL de tipo HTTPS. Cualquier URL desfasado y dudoso se marca como no seguro y/o no se cifra. Utilizando QUIC y UDP, HTTP/3 sustituye el paso del cifrado TLS a nivel de TCP y utiliza un cifrado TLS 1.3 automáticamente. Por consiguiente, HTTP/3 solo se puede aplicar si existe una codificación.

Otras funciones nuevas son la conexión constante en caso de cambio de red durante la transferencia (por parte del cliente o del servidor), la notable reducción de los paquetes de datos gracias a que la transferencia de paquetes se hace paralelamente, y una forward error correction, es decir, una corrección de errores que ya tiene lugar a nivel de QUIC.

¿Qué ventajas presenta HTTP/3?

Las ventajas de HTTP/3 son el aumento de la velocidad de transferencia, la reducción de los tiempos de carga y una conexión más estable. Como está basado en UDP, HTTP/3 suple los puntos débiles de TCP y aprovecha todas las ventajas de HTTP/2 y HTTP-over-QUIC.

Como HTTP/2 recurre a la multiplexación, es decir, a la descarga simultánea de datos, esta segunda generación de HTTP se ve afectada por el bloqueo head-of-line-blocking. Hablamos de embudos digitales que se encargan de interrumpir todas las trasferencias cuando se pierde un paquete en una de ellas. En cambio, al emplear UDP, HTTP/3 no espera a que finalice la transferencia, sino que prosigue el proceso de carga.

HTTP/3 renuncia a los handshakes preliminares que verifican la seguridad de la conexión. En vez de entregar solicitudes de seguridad a la capa TLS superior, el cifrado tiene lugar directamente a través del protocolo de transferencia. HTTP/3 reduce la duración del establecimiento de la conexión de dos pasos a uno.

Para concluir una descarga con éxito, HTTP/3 no depende de direcciones IP, sino que utiliza identificaciones de conexión individuales que hacen posible la descarga constante incluso en caso de cambio de red.

Sobre todo, para los usuarios de dispositivos móviles, HTTP/3 mejora la comodidad de navegación gracias a una conexión más estable, flexible y rápida.

HTTP/2 vs. HTTP/3: diferencias y similitudes

A continuación, encontrarás un breve resumen de las diferencias y similitudes entre HTTP/2 y HTTP/3.

Diferencias:

  • HTTP/3 se basa, al contrario que HTTP/2, en UDP y no en TCP.
  • Mediante el cifrado TLS 1.3 integrado, HTTP/3 renuncia a una petición de codificación adicional (handshakes) a nivel de TLS y evita las solicitudes de seguridad innecesarias.
  • Debido al cifrado TLS 1.3 integrado, HTTP/3 solo soporta conexiones cifradas, todo lo contrario que HTTP/2.

Similitudes:

  • Ambos protocolos utilizan la compresión del header. HTTP/3, por su parte, sustituye con Qpack la compresión HPAck relacionada con HTTP/2 en una lista ordenada de paquetes.
  • Al igual que HTTP/2, HTTP/3 soporta notificaciones push de servidor, es decir, el envío acelerado de datos CSS y JavaScript imprescindible para que el navegador muestre una página.
  • Ambos protocolos utilizan la multiplexación de solicitud/respuesta, es decir, la transferencia paralela de datos procedentes de diferentes fuentes.
  • La priorización de transferencias se encarga de que el contenido de las páginas se cargue con prioridad en ambos protocolos sin tener que esperar a que finalicen otras solicitudes.
Nota

Durante largo tiempo, HTTP/2 se consideró un protocolo de transferencia eficaz y fiable. Para saber más sobre este protocolo anterior a HTTP/3 y sobre las mejoras que ofrecía en términos de seguridad y velocidad de conexión, visita nuestro artículo sobre HTTP/2.

¿Qué problemas puede traer HTTP/3?

Muchos críticos de HTTP/3 claman que ha pasado muy poco tiempo entre esta tercera versión y el protocolo HTTP/2, y consideran UDP como un protocolo de red con carencias. Además, son los usuarios en especial quienes se benefician de este nuevo protocolo HTTP, pero los proveedores se enfrentan a ciertos retos a la hora de cambiar de TCP y TLS a UDP y QUIC.

Como el control de seguridad y el cifrado no se realizan mediante TLS, sino directamente mediante UDP, y UDP tiene que enviar tantos paquetes en el menor tiempo posible, los proveedores temen que no se pueda comprobar minuciosamente el tráfico de datos debido a la ausencia de la autenticación TLS. Por lo tanto, los riesgos para la seguridad de las aplicaciones y los datos es un punto muy criticado por los proveedores de internet. Gracias a la regulación clara de solicitud-respuesta, TCP se consideraba un protocolo fiable y orientado a la conexión. Como QUIC asume él mismo muchos pasos intermedios, en el aire queda la sospecha de si las opciones de control de los proveedores se ven limitadas por HTTP/3, y si el riesgo de entrada de malware en el flujo de datos es mayor.

Debido a que la oferta cada vez mayor de archivos multimedia, como imágenes, vídeos y otros elementos de las redes sociales, exige más velocidad en las transferencias de datos, a los usuarios solo les queda esperar que la familia de protocolos de internet avance cuanto antes y que los proveedores puedan seguir el ritmo de la evolución constante y cada vez más rápida de internet.