What is head-of-line blocking and does HTTP/2 remove it?
It is when one delayed item holds up everything behind it. HTTP/2 removes it at the HTTP level, but all streams share one TCP connection, so a single lost packet stalls every stream until retransmitted. HTTP/3 moves to QUIC, where streams are independent, to remove it at the transport level.
Answered in
HTTP/1.1, HTTP/2 and HTTP/3: What Each Version Fixed and What It Left BrokenPersistent connections, multiplexing, header compression and QUIC: each HTTP version removed one bottleneck and exposed the next. How to choose and verify.
Read the full analysisOther questions this article answers
More web performance questions
- What problem does HTTP/2 solve compared with HTTP/1.1?
- Why does HTTP/3 use UDP?
- How can I check which HTTP version a site is using?
- What is the difference between latency, bandwidth and throughput?
- Why measure p95 and p99 instead of the average?
- What is the quickest win for network latency?
- How do I decide whether to make something asynchronous?
- What is a cold start?
Every answer on Crashtech is written by the editor of the article it comes from — never auto-summarised. Browse all answers or the Web Performance beat.