Sobes.tech
Middle

Why is a large number of HTTP requests a problem? How is HTTP/2 multiplexing related to this, and how does HTTP/3 (transition from TCP to UDP) solve the head-of-line blocking problem?

sobes.tech AI

Answer from AI

A large number of HTTP requests is a problem because each request creates overhead for establishing a connection, transmitting headers, and waiting for a response, which increases delays and load on the server and network.

HTTP/2 addresses some of these issues through multiplexing — multiple requests and responses are transmitted simultaneously over a single TCP connection, reducing delays and decreasing the number of open connections.

However, HTTP/2 still uses TCP, and this introduces the problem of head-of-line blocking: if one packet is lost, TCP blocks the transmission of all subsequent packets in that connection until the lost packet is recovered.

HTTP/3 switches to the QUIC protocol over UDP, which implements its own flow and loss management mechanisms. This allows:

  • To avoid blocking the entire connection when a packet is lost — the loss affects only the specific stream.
  • To recover faster from errors and reduce delays.

Thus, HTTP/3 solves the head-of-line blocking problem at the transport protocol level, improving performance in poor network conditions.