Rendimiento del servidor

HTTP/2 y HTTP/3: multiplexación, QUIC y comprobaciones de rendimiento

El transporte moderno cambia cómo comparten conexión las solicitudes; el beneficio depende de la red y la carga.

Flujos paralelos de recursos atraviesan un canal compartido entre un navegador y un servidor
Ilustración: los flujos multiplexados comparten conexión y transportan respuestas separadas.

HTTP/2 mejora la entrega mediante solicitudes multiplexadas en una conexión y compresión de cabeceras. HTTP/3 utiliza QUIC, que puede evitar que una pérdida en un flujo bloquee otros y permite migrar conexiones. El protocolo más reciente puede ayudar, pero no elimina procesamiento, recursos excesivos ni renderizado: verifica lo negociado y mide los recorridos relevantes.

Identifica los límites de HTTP/1.1

La semántica HTTP define métodos, estados, cabeceras y recursos. El transporte determina cómo viajan. HTTP/2 o HTTP/3 no convierten GET en otra operación ni hacen almacenable una respuesta automáticamente. Diagnostica por separado los cambios de transporte y caché.

HTTP/1.1 admite conexiones persistentes, pero su uso habitual en navegadores no intercala libremente respuestas en una conexión. El pipelining tiene restricciones de orden y no fue una solución general práctica. Los navegadores emplean varias conexiones con límites según implementación. Abrir más conexiones exige establecimiento y competencia por recursos.

Esto favoreció agrupar archivos y repartirlos entre hostnames. A veces reducía esperas, pero añadía paquetes grandes, DNS y conexiones. Los protocolos modernos cambian ese equilibrio sin justificar retirar todas las optimizaciones antiguas a ciegas.

La guía de tiempo de respuesta del servidor distingue espera de conexión y de aplicación. Si domina generar HTML, cambiar transporte puede dejar casi intacto el retraso principal.

Comprende la multiplexación de HTTP/2

HTTP/2 representa mensajes mediante tramas binarias sobre flujos. Varios flujos comparten TCP, permitiendo avanzar sin esperar que termine cada respuesta completa. HPACK comprime campos de cabecera y reduce repeticiones.

Multiplexar no crea ancho de banda ilimitado. Los flujos compiten por capacidad y dependen de programación y control de flujo. Solicitar inmediatamente todos los recursos opcionales puede quitar capacidad a una imagen o CSS crítico. Descubrimiento y prioridad siguen importando aunque cambien las colas de conexión.

HTTP/2 conserva el flujo ordenado de bytes de TCP. Si una pérdida deja un hueco, TCP debe repararlo antes de entregar bytes posteriores en orden; puede retrasar flujos HTTP independientes. Ese bloqueo de cabecera de línea del transporte difiere del orden de respuestas de HTTP/1.1 y explica un posible beneficio de HTTP/3.

Server push forma parte de la historia de HTTP/2, pero no es una optimización general de navegador moderno en la que basarse. No sustituye el descubrimiento claro de recursos. Comprueba capacidades reales y prefiere mecanismos de carga compatibles para los recursos críticos.

Qué aporta QUIC a HTTP/3

HTTP/3 utiliza QUIC, transporte seguro multiplexado sobre datagramas UDP. QUIC proporciona flujos fiables, recuperación de pérdidas y control de congestión: UDP no significa perder bytes de una página sin repararlos. El establecimiento integra cifrado.

Una pérdida en un flujo no obliga a otros a esperar sus datos del mismo modo que en HTTP/2 sobre TCP. Siguen existiendo congestión compartida, límites de red y dependencias del protocolo. No es correcto afirmar que HTTP/3 elimina todos los bloqueos o siempre acelera redes con pérdidas.

Los identificadores de conexión QUIC permiten continuar tras cambiar de ruta de red, según soporte y validación. Pasar de Wi-Fi a datos móviles merece una prueba, no una promesa de continuidad universal. Algunas redes restringen UDP y hacen necesario conservar alternativas.

La reanudación puede permitir datos tempranos, llamados 0-RTT. Solo corresponde a conexiones reanudadas adecuadas, no a toda primera visita; el riesgo de repetición exige protecciones. No lo actives indiscriminadamente para modificar cuentas o pagar. HTTP/3 no requiere habilitar todas sus funciones opcionales.

Estas son diferencias concretas entre protocolos.

Propiedad HTTP/1.1 HTTP/2 HTTP/3
Transporte habitual del navegador TCP, con TLS para HTTPS TCP con TLS QUIC sobre UDP
Respuestas paralelas en una conexión Limitadas por su orden Flujos multiplexados Flujos QUIC multiplexados
Compresión de cabeceras Sin HPACK ni QPACK HPACK QPACK
Aislamiento de pérdidas Orden de TCP TCP puede afectar a todos los flujos Entrega más independiente
Cuellos de botella de aplicación Permanecen Permanecen Permanecen

Comprueba el protocolo realmente negociado

En Network de Chrome DevTools, activa Protocol desde el menú de cabeceras de la tabla. Recarga e inspecciona documento y recursos importantes por separado. h2 y h3 describen esa solicitud. Los distintos orígenes de una página pueden usar versiones diferentes.

Si el CDN termina la conexión, la columna describe navegador a borde. El CDN puede usar otra versión hacia el origen. Ver h3 no demuestra soporte HTTP/3 en el servidor de origen; una versión anterior detrás tampoco elimina todo beneficio frontal. La guía de CDN y caché perimetral explica esa separación.

El navegador puede descubrir HTTP/3 mediante Alt-Svc o mecanismos DNS compatibles. La primera solicitud puede diferir de las siguientes. Influyen conexiones existentes, anuncios guardados, certificados y UDP bloqueado. Documenta si comenzaste con una conexión nueva en lugar de refrescar sin contexto.

Comprueba las capacidades de curl antes de usarlo: no todas las compilaciones admiten HTTP/3.

bash
curl --version
curl --http2 -sS -o /dev/null -w '%{http_version}\n' https://example.com/
curl --http3-only -sS -o /dev/null -w '%{http_version}\n' https://example.com/

La solicitud exclusiva HTTP/3 excluye deliberadamente alternativas y puede revelar problemas de soporte o conectividad. Es una prueba diagnóstica, no una simulación completa del navegador. El protocolo impreso tras una solicitud correcta importa más que asumir que una opción garantiza su negociación.

Activa el soporte en la capa que controlas

En alojamiento administrado o CDN, consulta documentación actual y panel. Confirma hostname y tramo afectado. Verifica certificado, conexión al origen y alternativa HTTP/2. Un interruptor del panel y una solicitud h3 son evidencias distintas.

Apache HTTP Server 2.4 con mod_http2 documenta Protocols. Un host virtual TLS puede anunciar HTTP/2 con alternativa HTTP/1.1 mediante este fragmento.

apache
Protocols h2 http/1.1

Conserva la configuración TLS y certificados. mod_http2 no demuestra HTTP/3: es una capacidad distinta. Comprueba paquete y frontend antes de decidir dónde terminar ese tráfico.

En Nginx, http2 on existe como directiva independiente desde 1.25.1. HTTP/3 necesita el módulo correspondiente y una biblioteca TLS compatible; la documentación lo describe como experimental. Estas directivas pertenecen a un bloque TLS existente con certificados válidos y módulos requeridos.

El fragmento activa HTTPS por TCP y QUIC en el mismo número de puerto, con transportes distintos.

nginx
listen 443 ssl;
listen 443 quic reuseport;
http2 on;
add_header Alt-Svc 'h3=":443"; ma=86400';

Integra los listeners sin duplicarlos, especialmente con varios hosts virtuales en una dirección. Revisa cabeceras heredadas antes de add_header. Permite UDP 443 en firewalls y balanceadores y conserva TCP 443. La duración del anuncio es ilustrativa y no demuestra que QUIC sea accesible.

Valida con nginx -t y prueba desde fuera antes de ampliar. Compilación, TLS y datos tempranos varían: utiliza documentación de tu versión. El fragmento y una validación sintáctica no constituyen una configuración completa de seguridad.

Revisa sharding, sprites y paquetes grandes

Domain sharding reparte archivos entre hostnames para abrir conexiones paralelas. Con multiplexación puede añadir DNS y conexiones innecesarios y reducir reutilización. Consolida tras revisar certificados, caché, prioridad y efecto real. A veces las conexiones se agrupan, pero no supongas que cualquier hostname sale gratis.

Los sprites combinan imágenes y pueden resultar útiles en un diseño concreto. Sin embargo, pueden descargar píxeles innecesarios e invalidar contenido ajeno al actualizarse. Agrupar todo JavaScript también reduce solicitudes mientras obliga a cada ruta a descargar y procesar funciones que nunca utiliza.

Evita el extremo contrario de dividirlo todo en recursos diminutos. Solicitudes, cabeceras, compresión y dependencias siguen costando. Prefiere límites funcionales y compara carga inicial con navegación repetida. La guía de caché del navegador explica el efecto de archivos estables con huella.

Mide más que una recarga rápida

Compara dispositivos y redes representativos con iguales recursos, caché y condiciones del servidor. Incluye conexiones nuevas, reanudadas, visitas repetidas y una ruta sin HTTP/3. Registra el protocolo real, no solo la configuración deseada.

Mide establecimiento, TTFB, recursos críticos y rendimiento visible. No cambies a la vez enrutamiento del CDN, compresión, caché y protocolos si quieres identificar causas. Una caché caliente u otro nodo pueden parecer una mejora de transporte.

Anota configuración y alternativas en la lista de rendimiento. Profundiza mediante la colección de rendimiento del servidor y la especificación HTTP/3. Conserva el despliegue si los recorridos siguen siendo fiables y las medidas respaldan el beneficio, aunque sea menor que la ventaja teórica.

Guías relacionadas