Image credit:

Lo que necesitas saber sobre HTTP/2

0 Shares
Share
Tweet
Share
Save

Durante las últimas semanas seguramente has escuchado hablar sobre "http" y la presentación de HTTP/2, y te preguntarás: ¿de qué se trata todo esto?. Ese cuestionamiento es importante porque nos afecta a todos quienes usamos internet para visitar sitios web, y no se trata de algo que solo los ingenieros puedan entender.

HTTP no es más que un grupo de reglas que permite que ordenadores transmitan información, y lo que HTTP/2 conseguirá es que las páginas de internet que visites carguen mucho más rápido. Si quieres saber un poquito más sobre el cómo y cuándo, sigue leyendo, porque lo explicaremos en detalle, pero en un español claro, sencillo y directo.

¿Por qué es importante esto?

Cargar una página de internet en 2 segundos al contrario de 10 no es algo que tenga que ver solamente con conveniencia. Algunos estudios indican que 4 segundos es lo máximo que espera la persona común para que cargue una página antes de despecharse e irse a otro sitio. Esto implica que las tiendas pueden perder compradores, los blogs recibirán menos lectores y en general la espera implica una pérdida de tiempo significativa agregada. Por eso es importante optimizar sitios para que carguen más rápido.

En su día se descubrió que se puede mejorar el "protocolo" de transferencia de información de una manera significativa y que afecte a todos y cada uno de nosotros. HTTP ha sido usado desde principios de la década de los 90, y en específico, la versión actual, HTTP/1.1 se ha empleado desde 1999. Eso es una eternidad en términos de desarrollo de tecnologías, y por suerte algunos ingenieros de Google prestaron atención y desarrollaron algo llamado SPDY (del término "speedy" en inglés, que se traduce como "rapidito").

Durante las pruebas e implementación, que empezó en 2012, se comprobó que los cambios en la transmisión que hacía SPDY mejoraban la carga de sitios en hasta un 40%. Por eso se decidió formalizar los cambios al crear un protocolo hecho y derecho, siguiendo los pasos establecidos por las organizaciones a cargo de los estándares de internet, como la IETF (Internet Engineering Task Force).

Pero, ¿qué es un protocolo?

Los protocolos son reglas que los ordenadores usan para comunicarse entre sí. Eso es todo. En este caso, HTTP es el protocolo que usan los servidores web (ordenadores a cargo de hospedar las páginas que visitas) para enviar información a los navegadores (como Firefox o Chrome). Este protocolo web es parte de un grupo de protocolos conocido como TCP/IP, que se hace cargo de establecer la conexión entre tu ordenador y el enrutador, pasar los datos a tu proveedor de internet y obtener la información del servidor web.

TCP/IP permite utilizar distintos protocolos dependiendo del tipo de información a transmitir. Si deseas ver un sitio web, el primer protocolo a utilizar es Ethernet, que se hace cargo de establecer tu conexión con el cable del mismo nombre (las conexiones inalámbricas se consiguen de una forma totalmente distinta que por ahora ignoraremos). Dentro del paquete de información Ethernet se incluyen los detalles IP, que permiten que los datos viajen miles de kilómetros a través del planeta hasta llegar a su destino. Cada ordenador, en cada casa o edificio, tiene un número IP único para comunicarse en internet.

El paquete IP lleva dentro detalles que establecen la comunicación, llamados TCP o UDP, y estos a su vez llevan la información de HTTP. De ser necesario, los sistemas de cifrado (seguridad) se añaden luego, dentro de HTTP, con el protocolo SSL/TLS.

¿Por qué es mejor HTTP/2?

Esta nueva versión del protocolo de comunicación web implementa ciertos cambios que permiten que la comunicación sea más rápida. Por ejemplo, en vez de crear una conexión distinta para enviar cada componente de un sitio (como se hace con HTTP/1.1), en el nuevo modelo se crea una sola conexión para enviar toda la información. Esto es importante porque cada página puede incluir objetos HTML, CSS, JavaScript, imágenes, video, animaciones o aplicaciones enteras, y requiere más trabajo administrar más conexiones.

Otro cambio importante en HTTP/2 es el uso de compresión, que simplemente evita enviar datos repetidos durante la conexión, para así, enviar menos datos en total. Es importante además mencionar que en HTTP/2 la información se envía en binario, que es el lenguaje nativo de los ordenadores, al contrario de en texto, que usamos los humanos. Al tener que "traducir" menos, el ordenador puede funcionar más rápido.

El uso de "multiplexing", que permite enviar y recibir varios mensajes al mismo tiempo también permite que la comunicación sea optimizada, y por último, una tecnología denominada "server push" hace que el servidor envíe información antes de que el usuario la pida, para que esté disponible de manera inmediata. Para conseguir esto el servidor hace una estimación de lo que pedirás antes de que lo hagas.

La pruebas demuestran una mejora de entre 10 y 40% en la velocidad, con un promedio de alrededor de 30%. Como vemos abajo, los muchachos de HttpWatch han obtenido mejoras de un 20% sin mayor complicación.

Transferencia con HTTP/1.1

Transferencia con HTTP/2

¿Cuándo empezaremos a usar HTTP/2?

En algunos casos, podrías estar ya usándolo. Aunque el borrador del protocolo se proporcionó a la IETF recién el 11 de febrero, algunos navegadores ya lo han implementado, al igual que algunos servidores.

Antes del 11 de agosto el protocolo debe ser ratificado, para convertirse en un documento llamado RFC (Request for Comments) o modificado con un nuevo borrado. Si llega a convertirse en RFC, pasa a ser un documento oficial. En todo caso, los RFC no son de implementación obligatoria, como una ley, sino una sugerencia para que todo funcione correctamente.

Volviendo al tema de la implementación, Internet Explorer ya usa HTTP/2 en la Technical Preview de Windows 10. Igualmente, Firefox Beta 36 ya incluye soporte para el nuevo protocolo y Chrome también, aunque está desactivado por defecto (es fácil activarlo).

El servidor de Windows, IIS, ofrece soporte para HTTP/2 en Windows 10, mientras que Apache y Nginx pronto incluirán soporte (estos dos, actualmente, ya tienen extensiones para usar SPDY). Todo esto quiere decir que muy pronto empezaremos a usar HTTP/2, mejorando la velocidad de nuestra conexión, y no nos daremos ni cuenta.

From around the web

ear iconeye icontext filevr