HTTP/1.1, HTTP/2 y HTTP/3 de un vistazo
Las tres versiones transportan el mismo contenido, pero con distinta eficiencia. Los navegadores negocian por sí mismos la mejor versión común; tu servidor solo tiene que ofrecerla.
- HTTP/1.1 envía las solicitudes de una conexión una tras otra, por eso los navegadores abren varias conexiones en paralelo.
- HTTP/2 agrupa todas las solicitudes en una sola conexión TLS (multiplexación) y comprime las cabeceras. Si el servidor lo admite se decide en el establecimiento TLS mediante ALPN; justo eso es lo que pregunta la comprobación.
- HTTP/3 ya no va por TCP sino por QUIC en el puerto UDP 443. Un paquete perdido ya no frena a todos los demás y las conexiones sobreviven al cambio de wifi a datos móviles. Ayuda sobre todo en redes malas.
¿Cómo encuentra un navegador HTTP/3?
Un navegador siempre se conecta primero por TCP. Solo cuando el servidor ofrece HTTP/3 en la cabecera Alt-Svc: h3=":443" lo intenta por QUIC la próxima vez. Alternativamente, la oferta está en el registro DNS de tipo HTTPS, y entonces funciona ya en la primera visita. Sin ninguno de los dos, un servidor QUIC operativo queda sin usar. Si HTTP/3 está anunciado pero UDP 443 está bloqueado, el navegador vuelve a HTTP/2 y pierde tiempo.
¿Cómo comprueba la herramienta HTTP/3?
Envía al puerto UDP 443 un paquete QUIC con un número de versión desconocido a propósito. Todo servidor QUIC debe responder con la lista de sus versiones (RFC 9000). Así queda demostrado que de verdad escucha un servidor QUIC y que no solo se anuncia. Si no hay respuesta, casi siempre se debe a un cortafuegos, un grupo de seguridad o una redirección de puerto UDP que falta.
Comprueba las cabeceras de seguridad de la misma web en el comprobador de cabeceras y el certificado en el comprobador SSL.
FAQ
¿Necesito HTTP/3?
No, HTTP/2 ya es un gran paso para la mayoría de las webs. HTTP/3 ayuda sobre todo en móviles y en redes con pérdida de paquetes. Si tu servidor web o CDN lo ofrece sin esfuerzo, merece la pena.
Mi servidor anuncia HTTP/3 pero la comprobación no encuentra servidor QUIC. ¿Por qué?
HTTP/3 va por el puerto UDP 443. Si solo está abierto TCP 443 – en el cortafuegos, el grupo de seguridad de la nube o la redirección de puertos de Docker –, el paquete QUIC no llega. Abre también 443/udp.
¿Por qué mi navegador sigue mostrando HTTP/2?
Los navegadores solo conocen HTTP/3 por la cabecera Alt-Svc de la primera respuesta. Carga la página una segunda vez. En las herramientas de desarrollo (Red, columna «Protocolo») aparecerá h3.
¿Admite Apache HTTP/3?
No. Apache admite HTTP/2 con mod_http2; para HTTP/3 necesitas un proxy inverso como Caddy o nginx delante, o una CDN.
¿La comprobación carga mi servidor?
No. Hay un establecimiento de conexión TLS, dos consultas de cabeceras sin contenido y uno o dos paquetes UDP.