Backend Engineering

HTTP3

brian | Published: Feb. 28, 2024, 12:07 a.m. | Updated: May 25, 2025, 9:57 p.m.

Profile Picture

HTTP/3 is the third major version of the Hypertext Transfer Protocol used to exchange information on the World Wide Web. HTTP3 uses QUIC(which is a multiplexed transport protocol thats built on UDP). QUIC operates at the transport layer (Layer 4 )providing its own congestion control and error correction mechanisms.

1. Here we sent UDP datagrams

 

 

2. Now lets say all were delivered except "3", well since all are independent UDP, the server doesnt care because QUIC provides native multiplexing, lost packets only impact the streams where data has been lost, and in this case that's 4. In HTTP2, if there is a TCP segment missing, it would suffer from  head-of-line-blocking delays, and I explained this here HTTP2 article, but basically "a lost or reordered packet causes all active transactions to experience a stall regardless of whether that transaction was impacted by the lost packet", so that means if this was HTTP2, 6, 5, 8, and 7 would all experience delays, or they would actually not be delivered at all.

Thing To Note: Since UDP is stateless, we have to send the connectionID with every UDP datagram sent, and this identifies the connection.

Pros: has congestion control at stream level, connection set-up and TLS in one handshake

Cons: Takes  a lot of CPU