¿Qué es HTTP/2?
HTTP/2 es una revisión mayor del protocolo HTTP (estandarizado como RFC 7540) que introduce encuadre binario, multiplexación, compresión de encabezados y envío del servidor para mejorar dramáticamente el rendimiento web sobre HTTP/1.1.HTTP/2 vs HTTP/1.1
| Característica | HTTP/1.1 | HTTP/2 |
|---|---|---|
| Formato | Basado en texto | Binario |
| Conexiones | Múltiples (6-8 por host) | Única multiplexada |
| Manejo de solicitudes | Secuencial | Flujos paralelos |
| Compresión de encabezados | Ninguna | Compresión HPACK |
| Envío del servidor | No disponible | Soportado |
| Priorización | Ninguna | Prioridades de flujo |
Cómo Funciona HTTP/2
HTTP/1.1 (Bloqueo de Cabeza de Línea):
Conexión 1: Solicitud A ──────────► Respuesta A
Conexión 2: Solicitud B ──────────► Respuesta B
Conexión 3: Solicitud C ──────────► Respuesta C
(Múltiples conexiones, secuencial por conexión)
HTTP/2 (Multiplexación):
Conexión Única:
├── Flujo 1: Solicitud A ──► Respuesta A
├── Flujo 2: Solicitud B ──► Respuesta B
├── Flujo 3: Solicitud C ──► Respuesta C
└── Todos intercalados en misma conexión
Características Clave
Capa de Encuadre Binario
Estructura de Encuadre HTTP/2:
┌─────────────────────────────────────┐
│ Longitud (24 bits) │
├─────────────────────────────────────┤
│ Tipo (8 bits) │ Banderas (8 bits) │
├─────────────────────────────────────┤
│ Identificador de Flujo (32 bits) │
├─────────────────────────────────────┤
│ Carga de Encuadre (variable) │
└─────────────────────────────────────┘
Compresión de Encabezados HPACK
| Escenario | Encabezados HTTP/1.1 | Encabezados HTTP/2 |
|---|---|---|
| Primera solicitud | ~800 bytes | ~800 bytes |
| Solicitudes posteriores | ~800 bytes cada una | ~20-50 bytes (indexados) |
Priorización de Flujo
Árbol de Prioridades:
Raíz (conexión)
├── CSS (peso: 256, prioridad alta)
├── JavaScript (peso: 220)
└── Imágenes (peso: 110, prioridad menor)
Requisitos del Servidor
| Servidor | Soporte HTTP/2 |
|---|---|
| nginx | 1.9.5+ |
| Apache | 2.4.17+ (mod_http2) |
| Node.js | 8.4+ (nativo) |
| IIS | Windows 10/Server 2016+ |
Beneficios de Rendimiento
- Latencia reducida: Conexión única elimina sobrecarga de handshake TCP
- Mejor compresión: Reducción del 85-90% en tamaño de encabezados en solicitudes repetidas
- Carga paralela: Todos los recursos se cargan simultáneamente
- Envío del servidor: Envía proactivamente recursos antes de que navegador los solicite
Mejores Prácticas
1. Habilita TLS: HTTP/2 prácticamente requiere HTTPS (los navegadores lo aplican)
2. Reduce fragmentación de dominio: Múltiples dominios ahora dañan rendimiento
3. Deja de concatenar archivos: Multiplexación hace que bundling sea menos necesario
4. Usa envío del servidor con cuidado: Envía solo recursos críticos
5. Monitorea rendimiento: Verifica que HTTP/2 mejora tu caso específico
HTTP/2 entrega mejoras de rendimiento significativas para la mayoría de sitios web a través del uso más eficiente de conexiones de red.