How HTTP/1.1, HTTP/2, and HTTP/3 Handle Head-of-Line Blocking Differently
Head-of-line blocking occurs when a slow request on a persistent HTTP/1.1 connection delays all subsequent requests behind it, since responses must be returned in the original request order. The only practical workaround under HTTP/1.1 was for browsers to open multiple parallel TCP connections per origin, typically capped around six, which introduced overhead and resource competition. HTTP/2 solved the application-layer problem by splitting a single TCP connection into independently identified streams, allowing responses to be interleaved and delivered out of order. However, TCP's single ordered byte stream still causes cross-stream blocking at the transport layer when a packet is lost. HTTP/3 addresses this remaining issue by running over QUIC, a transport protocol whose independent streams prevent one lost packet from stalling unrelated streams.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in