¿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 frente a 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 (Head-of-Line Blocking):
Connection 1: Request A ──────────► Response A
Connection 2: Request B ──────────► Response B
Connection 3: Request C ──────────► Response C
(Multiple connections, sequential per connection)
HTTP/2 (Multiplexing):
Single Connection:
├── Stream 1: Request A ──► Response A
├── Stream 2: Request B ──► Response B
├── Stream 3: Request C ──► Response C
└── All interleaved on same connection
Características Clave
Capa de Encuadre Binario
HTTP/2 Frame Structure:
┌─────────────────────────────────────┐
│ Length (24 bits) │
├─────────────────────────────────────┤
│ Type (8 bits) │ Flags (8 bits) │
├─────────────────────────────────────┤
│ Stream Identifier (32 bits) │
├─────────────────────────────────────┤
│ Frame Payload (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
Priority Tree:
Root (connection)
├── CSS (weight: 256, high priority)
├── JavaScript (weight: 220)
└── Images (weight: 110, lower priority)
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.