Head-of-Line Blocking in HTTP
An asynchronous HTTP/1.1 server can handle many connections concurrently while still serializing work within each connection. Send a slow request followed by a fast request over the same persistent connection, and the fast response remains trapped behind the slow one. Send those requests over separate connections, and the fast response can arrive immediately. That behavior is head-of-line…
When a slow HTTP request is sent followed by a fast request over the same persistent connection, the faster response becomes delayed behind the slower one. This phenomenon is known as head-of-line blocking. HTTP/2 tackles this issue at the application layer by dividing a connection into independently identified streams. In contrast, HTTP/3 goes even further by running over QUIC, which uses transport-level streams that avoid the cross-stream blocking caused by TCP's single ordered byte stream. The key difference lies in the scheduling and framing mechanisms of these protocols.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — it may contain errors, so check the original before relying on it.