HTTP o Protocolo de Transferencia de Hipertexto, es el protocolo que nos permite navegar por la web desde hace 20 años. HTTP establece una serie de criterios de sintaxis y semántica para el establecimiento de comunicación entre los componentes de la arquitectura web: navegador, servidor web, proxy, etc…
Un poco de historia
La primera versión del protocolo HTTP (1.0) fue desarrollado por el World Wide Web Consortium y la Internet Engineering Task Force (IETF). Esta asociación culminó en 1999 con la publicación de una serie de documentos llamados RFC. El más importante de ellos es el RFC 2616 que da forma a la versión HTTP/1.1, la cual ha sido empleada durante muchos años.
La siguiente versión HTTP/2 liberada en 2015 llegó con el el objetivo de actualizar el protocolo HTTP introduciendo innumerables mejoras como el uso de una única conexión, la compresión de cabeceras o el servicio server push.
Mientras tanto Google ya estaba en el desarrollo de QUIC (Quick UDP Internet Connections) con el objetivo de mejorar la seguridad y el rendimiento de las aplicaciones web que usan TCP, mediante el uso de conexiones encriptadas sobre UDP.
En 2016 la IETF comienza a trabajar en la estandarización de un nuevo protocolo HTTP. En este proceso se toma el desarrollo de QUIC y se incorpora en los protocolos de transporte y aplicación.
A mediados de 2018, la IETF anuncia HTTP/3. Actualmente IETF está todavía definiendo como será el futuro HTTP/3.
LiteSpeed y QUIC
La publicación y adopción del protocolo HTTP/3 está todavía un poco lejos. Afortunadamente muchas de las mejoras en seguridad y rendimiento se encuentran ya disponibles en el servidor web LiteSpeed. Y esto es debido a que LiteSpeed incorpora QUIC de manera nativa desde Julio de 2017. Gracias a esto, todas las webs que hagan uso de este servidor web podrán ofrecer una mejor experiencia a sus visitantes.
Cuales son las mejoras de QUIC sobre HTTP/2
QUIC es mejor que HTTP/2.
– Reduce enormemente el tiempo de establecimiento de la conexión al crear un nuevo sistema de confianza (handshake) que agrupa las peticiones iniciales HTTP.
– Emplea multiplexación para evitar el boque de cabecera de línea. En HTTP/2 cuando un paquete se pierde en la conexión, el resto de paquetes tienen que esperar a una re-conexión del mismo para ser cargados. QUIC resuelve este problema mandado los paquetes en diferentes streams de tal manera que si un paquete se pierde, el resto no tiene que esperar a ser cargado.
– Mejora el control de congestión. Relacionado con el anterior punto, QUIC no necesita que los paquetes de datos lleguen en orden, por lo que un paquete perdido no compromete la velocidad de carga de una web ofreciendo una mejor experiencia al usuario.
– Migración entre redes. QUIC permite una mejor transición entre redes, al no depender de los paquetes perdidos. Esto es muy útil en conexiones itinerantes, como puede ser el uso del móvil en el coche o en el tren, o cuando cambiamos la conexión entre WIFI y 4G.
– Seguridad. QUIC es completamente seguro, ya que toda la información viaja encriptada en el propio protocolo, a diferencia del estándar HTTP.
– Disponibilidad. QUIC está activado por defecto en el navegador Google Chrome y disponible en Opera.
Cómo comprobar si tu web está funcionando con QUIC
Si tu web ya está usando Litepeed, QUIC está habilitado por defecto. Tan solo es necesario el empleo de un certificado SSL (https). Para comprobar que efectivamente QUIC está funcionando, puedes emplear la extensión HTTP/2 and SPDY indicator para Google Chrome. Un rayito verde indicaría que todo está OK y tu sitio web estaría funcionando con QUIC.