HTTP/2 vs HTTP/3

Head-of-Line Blocking under 5% packet loss

300ms

Both grids load 25 images from identical servers (Go + Python). The only difference is the transport protocol.
Under packet loss, HTTP/2's single TCP stream stalls all requests when a packet drops. HTTP/3 (QUIC) isolates each request to its own stream.

HTTP/2 TCP

h2.media-holblockdemo.tomasantonelli.ar
Total load time

HTTP/3 QUIC

h3.media-holblockdemo.tomasantonelli.ar
Total load time
Network simulation: tc netem delay 25ms loss 5% on server's public interface.
Each request has an artificial server-side delay plus real network latency and packet loss.