From Text Lines to Binary Frames
HTTP one dot one sends one request at a time per connection as text. HTTP version two replaces this with a binary framing layer: messages are split into small frames that interleave on a single connection.
Streams Multiplexed
A stream is an independent, bidirectional sequence of frames carrying one request and its response. Many streams share one connection at once, each tagged with a stream identifier so the receiver can reassemble them.
- A HEADERS frame begins a message with its header fields.
- A DATA frame carries body bytes.
- Frames from different streams interleave freely on the wire.
Solving Head of Line Blocking
Because streams are independent, a slow response no longer blocks others at the HTTP layer, unlike HTTP one dot one where responses must return in order. This is multiplexing without opening many connections.
A Remaining Limit
Multiplexing happens above one TCP connection, so a lost packet still stalls all streams at the transport layer. That residual blocking is what later protocols target.
Key idea
HTTP version two uses a binary framing layer where HEADERS and DATA frames from independent streams interleave over one connection, multiplexing requests and removing head of line blocking at the HTTP layer.