Sólo unos pocos lo siguen escribiendo al introducir las URL en el navegador, y esos pocos reciben miradas de incredulidad: puede que el estándar HTTP, o Hypertext Transfer Protocol pase cada vez más desapercibido porque lo damos por hecho en todas partes, pero lleva en marcha desde 1997 y sigue siendo el pilar central de las comunicaciones web.
Y ahora, este protocolo va camino de modernizarse con su segunda gran versión: HTTP/2. Llevamos años anticipándolo, sabiendo que su principal ventaja va a ser la velocidad con la que podremos cargar las páginas web, pero ¿cómo va a funcionar exactamente y cuál va a ser la mejora de velocidad real?
El estándar HTTP: lección express
Vamos a hacer un repaso rápido de cómo funciona el estándar HTTP, ya que es "el átomo" indivisible de la web: un cliente (tú, con tu navegador web abierto) solicita a un servidor la carga de una página web mediante la escritura de una dirección web en ese navegador. El servidor recibe esa petición HTTP, y emite una respuesta que consiste en la carga de los ficheros HTML de esa web junto con cualquier otra ejecución que dicha carga comporte.
Además de la carga de esa web, el servidor también responde con un mensaje de estado que indica si todo ha ido bien o si ha habido un error. Seguro que reconocerás el mensaje de estado 404 que indica un error de carga por no haber encontrado nada, o la polémica reciente del mensaje de error con el nuevo código 451 que quieren atribuir al fallo de carga "por razones legales", rodeado de críticas de censura.
HTTPS no es más que el estándar HTTP con una capa de cifrado SSL por encima, y es lo que ahora mismo exigen la gran mayoría de servicios online
Si al estándar HTTP le añadimos una capa de seguridad mediante el protocolo SSL obtendremos HTTPS, que no es más que el estándar HTTP con un cifrado que hace que nadie pueda leer los datos que circulen entre las peticiones que manda el usuario con su navegador y las respuestas del servidor. En Genbeta lo detallamos a fondo, y es una medida de seguridad que la gran mayoría de servicios online consideran ya esencial.
HTTP vs HTTP/2: ¿qué es lo que cambia?
La respuesta rápida es la velocidad a la que trabaja. Vamos con la respuesta más elaborada: HTTP/2 se basa en SPDY, un protocolo presentado en 2009 por Google con la intención de acelerar las webs. En ese entonces se hablaba de un aumento del 22-60% de la velocidad de carga de las webs convencionales y un aumento del 39-55% en el caso de las webs con SSL. Aquí podéis ver las especificaciones finales del nuevo estándar.
¿Cómo se consigue ese aumento de velocidad tan significativo? Pues multiplexando las peticiones que reciben los servidores por parte de los usuarios y sus navegadores web. Es decir: que esos servidores puedan atender varias peticiones al mismo tiempo. Eso también ahorra en cantidad de conexiones, liberando de trabajo a los servidores. Este gráfico lo explica bien:
Además los servidores podrán ser proactivos: reconocerán qué tipo de cliente (navegador web) ha enviado una petición y, además de enviar la respuesta que necesita, enviará también respuestas con datos que ya sabe que el navegador va a necesitar antes de que éste los pida en una nueva petición. Por ejemplo: mientras que con HTML tenemos que cargar primero todo el HTML de la web para después cargar su contenido (CSS, imágenes), con HTTP/2 podemos cargar todo ese contenido al mismo tiempo que el mismo HTML base.
Para los desarrolladores, quizás la novedad que más van a notar es la de los frames. Pasamos de la estructura de header y body en HTML a dividirlo todo en "frames" binarios, que vienen a ser porciones de código identificables como esos header y body que se pueden enviar antes de que el servidor envíe la respuesta del elemento HTML que se ha enviado anteriormente. Esto también ayuda a comprimir mejor el contenido de los headers, que a su vez facilita todavía más una carga rápida de todos los datos.
El cifrado es quizás la novedad que ha traído más debate: HTTP/2 está preparado para aceptar solicitudes cifradas (de la misma forma que ya hace HTTPS), pero no será algo completamente obligatorio tal y como pedían muchos usuarios. Lo que sí que ocurrirá es que la mayoría de navegadores modernos (entre ellos Safari, Firefox, Chrome, Edge, Internet Explorer y Opera) sólo aceptarán comunicaciones HTTP/2 si están cifradas, de modo que aunque no va a ser algo estrictamente obligatorio sí que prácticamente hará que todos los desarrolladores apliquen ese cifrado quieran o no. La EFF ya está haciendo pasos para que hacerlo no sea demasiado complicado.