Sobes.tech
Middle

¿En qué se diferencian los protocolos HTTP/1 y HTTP/2?

sobes.tech AI

Respuesta de la IA

Las principales diferencias entre HTTP/1.1 y HTTP/2:

  • Multiplexación:

    • HTTP/1.1: Procesamiento secuencial de solicitudes en una sola conexión. Para cargas paralelas, se requerían varias conexiones TCP.
    • HTTP/2: Multiplexación en una sola conexión TCP. Permite enviar varias solicitudes y recibir respuestas simultáneamente, sin bloquearse mutuamente.
  • Compresión de encabezados (HPACK):

    • HTTP/1.1: Los encabezados se transmiten sin comprimir, lo que puede ser redundante con muchas solicitudes.
    • HTTP/2: Compresión de encabezados usando el algoritmo HPACK. Reduce el tamaño de los datos transmitidos.
  • Priorización de flujos:

    • HTTP/1.1: No había opción de priorización.
    • HTTP/2: El cliente puede asignar prioridades a diferentes flujos de datos, influyendo en el orden de procesamiento por parte del servidor.
  • Push del servidor (Server Push):

    • HTTP/1.1: El cliente debe solicitar explícitamente cada recurso (CSS, JS, imágenes).
    • HTTP/2: El servidor puede enviar recursos que considere necesarios para mostrar la página antes de que el cliente los solicite.
  • Protocolo binario:

    • HTTP/1.1: Protocolo de texto, relativamente fácil de leer.
    • HTTP/2: Protocolo binario, más eficiente para analizar y transmitir.

Tabla comparativa:

Característica HTTP/1.1 HTTP/2
Multiplexación No (varias TCP) Sí (una TCP)
Compresión de encabezados No Sí (HPACK)
Priorización de flujos No
Push del servidor No
Formato del protocolo Texto Binario
Problema de Head-of-Line Blocking Presente (para un TCP) Reducido gracias a la multiplexación

Ejemplo de multiplexación (conceptual):

// HTTP/1.1: Solicitudes secuenciales
fetch('/resource1')
  .then(() => fetch('/resource2'))
  .then(() => fetch('/resource3'));

// HTTP/2: Solicitudes paralelas en una sola conexión
// En el navegador, esto sucede automáticamente para HTTP/2
// Conceptualmente, las solicitudes pueden enviarse casi simultáneamente