HTTP2 vs CDN

Últimamente hemos leído en varios foros y grupos de Facebook, opiniones sobre cómo con HTTP2 se hace innecesaria una CDN.

Pero... ¿Es esto cierto?

HTTP2 y CDN, cómo influye en la velocidad de carga de la web

Parece que existe cierta confusión entre las ventajas que otorga HTTP2 y las que otorga una CDN.

Aunque ambos nos ofrecen capacidades para mejorar la velocidad de un sitio web, son completamente distintas y complementarias.

Lo bueno que trajo HTTP/2

HTTP/2 ofrece, esencialmente, un mejor rendimiento y un menor uso de ancho de banda.

También facilita la vida de los optimizadores web y desarrolladores, ya que elimina la necesidad de partición de dominios y otras soluciones provisionales que se utilizaban para sortear las limitaciones de HTTP/1.x.

Algunas de las principales características de HTTP/2 son:

  • Multiplexación real: Se pueden cargar múltiples recursos en paralelo a través de una sola conexión.
  • Compresión de cabecera: Esto reduce la sobrecarga al evitar el inicio lento de TCP y al hacer que todos los encabezados salgan en un solo viaje de ida y vuelta (comparado con 7, 8, 9, …)
  • Empuje desde el servidor (server push): El servidor puede enviar solicitudes que cree que el cliente necesitará antes de que el navegador analice el HTML y envíe solicitudes de activos incrustados, reduciendo así los viajes de ida y vuelta.

Con Google empujando la adopción de conexiones cifradas, las cuales se implementan sobre HTTP/2, los números de peticiones con este protocolo no han parado de crecer.

Y, ¿qué tiene que ver esto con una CDN?

Pues… poco. HTTP/2 es un protocolo mientras que una CDN es un sistema de servidores con un propósito específico: servir ficheros estáticos de manera rápida.

Ventajas de una CDN

Simplificando mucho, la mayor ventaja de contar con una CDN es que nuestros assets se servirán desde un servidor más cercano al usuario, reduciendo la latencia.

Entonces, ¿de dónde viene la confusión?

Parece que esa capacidad de gestionar peticiones en paralelo y hacerlo más rápido ha llevado a algunos desarrolladores y marketers a pensar que esto hace que una CDN sea redundante: nada más lejos de la realidad.

HTTP/2 brinda muchas mejoras en el formato del contenido web, pero no puede cambiar la cercanía del contenido con el usuario final. Sólo los servidores y el caching pueden hacer eso.

La distancia al servidor es un factor clave a la hora de servir webs con velocidad.

Si, por ejemplo, tenemos un servidor en España y alguien desde Argentina visita nuestra página, todas las peticiones tendrán que viajar desde Argentina a España, y de vuelta. Por muy rápido que HTTP/2 nos permita hacer esto, la distancia (como sucede con un coche), es algo que hay que recorrer y que añade tiempo de carga.

Dicho de otra manera y, de nuevo, simplificando al máximo: mientras que HTTP/2 mejora la velocidad y proceso de las peticiones, una CDN hace que esas peticiones tengan que viajar menos distancia ya que tendremos servidores repartidos por todo el planeta, más cerca de nuestros usuarios, teniendo que viajar menos distancia.

 

Consejos generales

No elimines tu CDN

Como regla general, no es bueno prescindir de una CDN. Como hemos visto, una CDN nos permite tener servidores más cerca de nuestros usuarios y que éstos reciban los ficheros estáticos de manera más rápida al tener que «viajar» menos distancia.

Como en todo, hay una excepción a esto… Y se trata de cuando tenemos un público muy específico limitado a una zona.

Por ejemplo, si tenemos una web en España, con servidor en España y el 99% de nuestros visitantes nos visitan desde España… seguramente no ganemos e incluso perdamos rendimiento con una CDN (suponiendo que contamos con un buen servidor, etc).

Este caso, no es lo habitual, pero se da en algunos escenarios como sitios de negocios locales (probablemente no mucha gente del otro lado del mundo busque tu negocio local en un pueblo a 12.000km de donde vive).

Deshaz los «hacks» sobre HTTP/1.1

HTTP/1.1 es un protocolo muy antiguo que se diseñó cuando la web no era lo que es hoy.

Para solventar sus deficiencias los desarrolladores utilizaron todo tipo de técnicas como la partición de dominios, los spriting de imágenes y la combinación de recursos.

Hoy en día user estos métodos probablemente disminuirá el rendimiento de tu sitio. Para aprovechar las nuevas características de HTTP/2, hay que eliminar muchas de las antiguas soluciones provisionales.

Cifra los ficheros

En un inicio, la encriptación era un requisito para SPDY y HTTP/2. Aunque la IETF se ha retractado de esta decisión, muchos navegadores sólo usarán HTTP/2 si el sitio web usa TLS (encriptación).

Todos los grandes navegadores ya requieren TLS para HTTP/2.

Con Google fomentando la implementación de encriptación de mil maneras, la solución lógica y fácil es implementar HTTPS en tu web y aprovechar las ventajas tanto de la encriptación como de HTTP2.

La mayoría de servidores actuales cuentan con una fácil integración con Let’s Encrypt, así que no hay excusa.

Conclusiones

  1. Aunque tanto HTTP2 como una CDN influyen positivamente sobre la velocidad de carga de un sitio web, lo hacen a niveles muy distintos.
  2. Mientras que HTTP2 nos permite mejorar el proceso de peticiones, una CDN nos permite que los paquetes tengan que viajar menos y se sirvan con menor latencia.
  3. Para aprovechar la mejor velocidad, de manera general, lo recomendable es usar una CDN y servidor con encriptación sobre HTTP2.

· Comparte:

Share on facebook
Share on twitter
Share on linkedin