HTTP/2 ya disponible en todos los servidores compartidos o en la nube, de SiteGround

HTTP2

Internet, como todos sabemos, no existiría hoy en día sin no hubiese existido el protocolo HTTP. Es el corazón y el alma que bombea el contenido a todo el mundo. Esto hace posible que todos podamos leer las últimas noticias, comprar online, ver vídeos en YouTube y acceder a nuestras webs favoritas en todo tipo de dispositivos: estaciones de trabajo con pantallas de 27 pulgadas, ordenadores portátiles, teléfonos móviles, tablets e incluso e-readers con capacidad de navegación. Lamentablemente, ese protocolo no se ha cambiado desde 1999, cuando se lanzó la versión 1.1, por lo que cuando el HTTP/2 fue lanzado a principios de este año, suscitó una gran emoción. Por supuesto, el equipo de SiteGround inmediatamente ha comenzado a trabajar en ello y ahora nos complace anunciar que todos nuestros servidores, compartidos y en la nube, soportan el HTTP/2.

¿Por qué el HTTP necesitaba una actualización?

Las webs/apps modernas hacen cientos de peticiones HTTP y HTTP 1.1 no está bien diseñado para las necesidades de rendimiento de una web moderna y el constante crecimiento de usuarios. Durante los últimos 16 años, ha surgido muchas nuevas tecnologías y los desarrolladores web se volvieron realmente creativos para encontrar una forma de saltarse las limitaciones del HTTP 1.1. Sin embargo, llegó el momento de cambiar el protocolo e introducir algunas nuevas características que acelerasen todas las webs de Internet.

¿Qué novedades tiene el HTTP/2?

HTTP/2 se basa en SPDY y se centra en las mejoras de rendimiento. Ofrece las siguientes mejoras:

  • Multiplexación para una transferencia de datos más rápida

  • Las webs/apps modernas requieren que los navegadores web hagan muchas peticiones para poder mostrar una web. Al principio, el HTTP/1.0 permite hacer solamente una solicitud a través de una única conexión TCP. Con el HTTP/1.1 se consiguió que los navegadores pudiesen hacer múltiples solicitudes para cargar muchos recursos simultáneamente. Por desgracia, el problema llamado bloqueo de cabeza de línea no se resolvió.

    Al utilizar HTTP/1.1, el flujo de solicitudes suele ser el siguiente: el navegador envía una petición y debe esperar la respuesta del servidor con el fin de enviar la siguiente solicitud. Las webs modernas tienen normalmente más de 100 objetos, por lo tanto,, aunquelos navegadores usen múltiples conexiones, el total de las solicitudes puede sumar una gran cantidad de tiempo a causa del bloqueo de cabeza de línea.

    La solución introducida en HTTP/2 se denomina multiplexación. Nos da una forma sencilla de solicitar y recibir múltiples objetos web a la vez a través a una sola conexión. Es la solución para el problema de bloqueo de cabeza de línea. HTTP/2 resuelve este problema mediante el uso de marcos. Cada marco contiene meta información sobre las peticiones/respuestas, lo que permite que una conexión pueda ser usada para entregas simultáneas sin causar confusión sobre qué respuesta se asocia con qué petición. He aquí un ejemplo de cómo HTTP/2 gestiona las tres peticiones que mostramos en el diagrama anterior:

    Como se puede ver en el segundo diagrama, cuando se utiliza HTTP/2 el usuario envía varias solicitudes y puede recibirlas en cualquier orden. Por lo tanto, las páginas se cargan más rápido. Por ejemplo, el servidor necesita más tiempo para manejar la segunda petición, pero la entrega de la tercera no fue bloqueada.

  • Compresión de cabeceras para transferir menos datos

  • La segunda gran mejora añadida por el HTTP/2 está relacionada con cabeceras HTTP. Los clientes usan los encabezados para informar a los servidores de la información que se necesita y en qué formato se les debe entregar. Por ejemplo, un navegador web, por lo general, envía encabezados para informar a los servidores que soportan datos gzip comprimidos. Las cookies también se comunican a través de las cabeceras y el tamaño de algunas cookies pueden ser realmente grande.

    El problema es que los encabezados no cambian mucho entre las peticiones. Con HTTP/1.1, los encabezados también tienen deben proporcionarse en cada petición, un sinsentido teniendo en cuenta que las cabeceras no cambian. Ahora, con HTTP/2 no sólo se envía un encabezado por conexión, sino que también ofrece compresión. Esto significa que una página web que contenga de media 80-90 objetos, ahora se puede cargar mucho más rápido debido a que el navegador web necesitará sólo una ida y vuelta para enviar todos los encabezados de todos los objetos.

  • Priorización adecuada del procesado de página

  • El tercer problema que resuelve el HTTP/2 es debido a la multiplexación y la compresión de cabeceras. Algunos objetos son más importantes que otros. Por ejemplo, los objetos CSS de una web deben ser entregados al principio, para que el sitio se pueda mostrar correctamente. Si se utiliza la multiplexación no se puede estar seguro de que el CSS vaya a entregarse antes que el resto de los objetos.

    Los diseñadores del protocolo, decidieron abordar esta cuestión en el propio protocolo. Los clientes son capaces de comunicarse con el servidor e indican las prioridades de ciertos objetos y de esta manera los servidores web pueden tomar decisiones acerca de qué objetos deben ser entregados primero a los clientes. Desde el propio protocolo ayudan a la priorización, esto significa que los desarrolladores web no deben preocuparse de hacer cambios en sus aplicaciones. Los navegadores web modernos se harán cargo de la priorización y del manejo de los flujos de datos en HTTP/2.

  • HTTP/2 necesita SSL/TLS

  • Todas las implementaciones de servidores web soportan HTTP/2 cuando se utilizan a través de una conexión cifrada. Esto significa que tu web necesitará SSL con el fin de obtener los beneficios del HTTP/2.

    Puedes encontrar más información sobre el HTTP/2 aquí.

¿HTTP/2 ya está en uso?

HTTP/2 ya está en funcionamiento y probablemente ya lo estés usando si utilizas un navegador moderno como las últimas versiones de Chrome, Firefox, Opera y Edge, que ya soportan HTTP/2.

Ahora todos los servidores compartidos o en la nube de SiteGround soportan HTTP / 2. Ten en cuenta que los clientes que tienen certificados SSL privados (véase más arriba: el cifrado es necesario cuando se utiliza HTTP/2) pueden beneficiarse de inmediato de las nuevas mejoras de rendimiento ofrecidas por el HTTP/2.

Ingeniero Senior en Web y Apps y Especialista en Rendimiento

Mi trabajo está muy relacionado con todo tipo de productos de software gratuito y de código abierto (algunos de mis favoritos son WordPress, Joomla !, Magento, Varnish y Apache mod_security). Como friki de la seguridad Web y del rendimiento siempre estoy híper concentrado en resolver todo tipo de problemas y en mejorar nuestros servicios.

6 comentarios

  1. Contestar octubre 4, 2018 / 14:10 PauEquipo SiteGround

    Buenas tardes, ¿como puedo saber si en mi cuenta de Siteground está activado el http/2? soy usuario de un servidor cloud. Gracias.

    • Contestar octubre 8, 2018 / 14:43 LauraEquipo SiteGround

      Hola Pau,

      El contenido de tu web se servirá por HTTP/2 solo si estás accediendo a través de una conexión encriptada (https). Esto significa que necesitarás un certificado SSL valido e instalado para tu dominio. Si tienes una cuenta Cloud, o si quieres usar los certificados Wildcard, puedes conseguir el SSL Let's Encrypt requerido a través de la herramienta Let´s Encrypt de tu cPanel.

      Te paso este enlace donde podrás consultar más información sobre los certificados SSL y HTTP/2: https://www.siteground.es/kb/category/certificados-ssl/letsencrypt/ y cualquier información más que puedas necesitar, ¡no dudes en contactar con nuestro equipo de soporte! Estarán encantados de ayudarte.

      ¡Un saludo!

  2. Contestar noviembre 26, 2018 / 00:19 MariEquipo SiteGround

    Hola Daniel, estoy usando el let's encrypt y me gustaría saber si le tengo que escribir a siteground para que me activen el http2 o ellos lo activan automáticamente?

    • Contestar noviembre 28, 2018 / 14:24 LauraEquipo SiteGround

      Hola Mari,
      no tienes que hacer nada. Si ya estás utilizando el certificado SSL Let´s Encrypt, el HTTP2 ya está activado. Si necesitas más información, puedes consultar aquí: https://www.siteground.es/kb/funcionara-http2-una-vez-dominio-tenga-lets-encrypt/

      ¡Un saludo!

      • enero 30, 2019 / 16:52 caliEquipo SiteGround

        Hola Laura, soy usuario de SiteGroung, pasé mi sitio a https con let's encrypt... sin embargo te falta aclarar que además de usar https el sitio debe usar versión de PHP superior a 7. Así y todo cuando realizo un testeo mediante un add-on en mi browser...sigue saliendo que el sitio sigue sirviéndose con http1.1 .Como cambié la versión de PHP hoy le voy a dar mas tiempo pero en principio no veo que funcione en forma automática como dices. saludos

      • enero 31, 2019 / 11:57 LauraEquipo SiteGround

        Hola Cali,
        La versión de PHP de una web no tiene por qué determinar que una web se sirva en HTTP/1.1 o HTTP/2. Existen muchas webs con versiones inferiores a PHP7 que soportan HTTP2 sin problema. En tu caso, si ves que tu web se sigue sirviendo en HTTP/1.1, puede estar relacionado con otro tipo de factores que podrían estar interceptando las conexiones del servidor y clasificándolas a HTTP/1.1, como algún software antivirus que tengas instalado.
        Si necesitas más ayuda, no dudes en contactar con nuestro equipo de soporte para que revisen contigo tu caso más en detalle.

        ¡Un saludo!

Contestar

* (Requerido)