domingo, 5 de febrero de 2017

HTTP/2

HTTP2 o H2 para los amigos nació en el 2012 pero los navegadores comenzaron a utilizarlo hasta el 2015, es nuestra responsabilidad en como desarrolladores de migrarnos a este nuevo protocolo, al realizar esta sencilla migración no solo vamos hacer nuestros sitios sean mas seguros si no que también vamos a mejorar el rendimiento.

Historia:


Después de 15 años de vivir con HTTP /1.1 empieza a ser insuficiente para los tiempos que corren, cada vez las mejores conexiones a internet sin embargo no podemos sacarle el provecho a dichas conexiones ya que HTTP /1.1 sufre mucho cuando se realizan demasiadas peticiones degradando el rendimiento, solo pudiendo trasmitir 6 paquetes a la vez, permíteme explicarlo con un ejemplo.

Tu página web tiene 2 CSS, 2 JS y 8 imágenes, con el protocolo HTTP / 1.1 tendría que hacer 2 viajes para cargar esa página web, durante esto años los desarrolladores han utilizado muchos trucos evitar los restricciones de HTTP / 1.1 

En esta caso en particular el desarrollador puede unificar los 2 CSS  en un solo archivo o colocar cada CSS en servidores de distribución de contenido (CDN)  los cuales son servidores especializados en compartir tus documento

Con las imágenes podemos utilizar image sprite, que por si no lo sabes es un archivo de imagen que contiene todas las imágenes que va utilizar tu sitio y se hace referencia a estas pequeñas image a través de coordenadas, con esto disminuimos de 8 llamadas a 1 sola. 







Por qué Cambiarse a HTTP / 2 ?

El principal cambio seria que con una  sola conexión podrás hacer multiple solicitudes y respuesta en paralelo, así que ya tendrás la restricción de solo 6 llamadas, por lo que tu sitio puede llegar hacer hasta un 60% más rápido.


Migrando HTTP /2


Que tengo que hacer para migrar?

Lo primero es tienes que hacer que tu sitio sea HTTPS ya que aun HTTP /2 no necesita el uso cifrado la gente de los navegadores (Chrome, Firefox, Microsoft Edge) han decidido que solo le darán soporte sobre TLS, por lo que tendrás que adquirir un certificado digital y si no tienes para comprar el certificado puedes utilizar uno gratuito por medio de Lets Encrypt.



Ahora que tienes tu sitio sobre HTTPS, tienes que hacer unos pequeños cambios en tu servidor.

Linux


NGINX
En nginx solo tiene que agregar http2  en la línea listen de tu archivo de configuración.


Aquí dejo dejo el link para una guía completa de la gente digital Ocean.

Deben asegurarse

Apache
Con apache debes de agregar unos módulos.



Dejo la guía completa.
https://www.rosehosting.com/blog/how-to-set-up-apache-with-http2-support-on-ubuntu-16-04/


ALPN
Para que HTTP 2 les funcione en Google Chrome deben de tener soporte a ALPN, no todos las distribuciones de linux, Solo Ubuntu 16.04 tiene soporte para ALPN, pero hay formas de agregarlo a Centos.


Si el sistema operativo no soporta ALPN google Chome no utilizara http 2 si no bajara a http 1.1


Windows


Internet Information Server (IIS)

Con IIS la gente de Microst si la hacer complicada ya que requiere de cambiar tu servidor a Windows Server 2016 donde ya estar disponible de manera automática.



Como saber si estoy en http2?


Puedes navegar la siguiente URL:

https://tools.keycdn.com/http2-test



Google Chrome

En la ventana de inspeccionar (clic derecho inspeccionar) de Google Chrome vas a pestaña de Network, tienes que agregar la columna de protocolo y refrescas la página (cmd + R).



Si deciden quedarse en HTTP 1.1 aquí algunos consejos de mejora de rendimiento.

No hay comentarios.: