Why QUIC Is Revolutionizing HTTP: From HTTP/1.1 to HTTP/3 Explained

This article traces the evolution of HTTP from its 1991 origins through HTTP/2 and HTTP/3, explains how QUIC leverages UDP to reduce latency, and details QUIC's connection establishment, migration, head‑of‑line blocking mitigation, congestion control, and flow‑control mechanisms.

Open Source Linux
Open Source Linux
Open Source Linux
Why QUIC Is Revolutionizing HTTP: From HTTP/1.1 to HTTP/3 Explained

HTTP History

1991 – HTTP/1.1 was standardized. 2009 – Google designed SPDY over TCP. 2013 – QUIC was introduced. 2015 – HTTP/2 was standardized. 2018 – HTTP/3 (HTTP over QUIC) was standardized.

HTTP/3 uses UDP to retain QUIC's speed while preserving TLS security.

QUIC Protocol Overview

QUIC (Quick UDP Internet Connections) is a UDP‑based protocol that combines the advantages of TCP, TLS, and HTTP/2 while optimizing performance.

QUIC replaces TCP/SSL/TLS at the transport layer. Any application‑layer protocol (HTTP, FTP, IMAP, etc.) can run over QUIC; when HTTP runs over QUIC it is called HTTP/3.

RTT Connection Establishment

HTTP/2 requires 3 RTT (or 2 RTT with session reuse, 1 RTT with TLS 1.3). HTTP/3 establishes a connection with only 1 RTT for the first handshake and 0 RTT for subsequent connections.

Client sends an Inchoate Client Hello.

Server replies with a Rejection containing its DH parameters (g, p, A).

Client generates its own DH parameters, computes the shared secret K, encrypts HTTP data with K, and sends B and the encrypted data.

Server derives the same secret, decrypts the data, updates its DH values, and sends a Server Hello with the new public key and HTTP response.

Connection Migration

TCP connections are bound to a four‑tuple (source IP, source port, destination IP, destination port); any change forces a new connection. QUIC uses a 64‑bit Connection ID, so the connection persists across IP or port changes.

Head‑of‑Line Blocking & Multiplexing

Both HTTP/1.1 and HTTP/2 suffer from head‑of‑line (HoL) blocking at the TCP level. HTTP/2 mitigates HoL at the request level by multiplexing streams over a single TCP connection, but TCP’s own HoL remains.

Because QUIC operates over UDP, loss of a single packet does not stall the entire connection; only the missing packet is retransmitted.

Congestion Control

QUIC adopts TCP’s congestion‑control concepts (slow start, congestion avoidance, fast retransmit, fast recovery) and implements the Cubic algorithm with additional features:

Hot‑plugging: congestion‑control algorithms can be changed at the application level without kernel modifications.

Forward Error Correction (FEC): data is split into 10 packets, an XOR‑based FEC packet is added, allowing recovery of a single lost packet.

Monotonically increasing Packet Number: eliminates ambiguity between original and retransmitted packets.

ACK Delay: accounts for receiver processing time, yielding more accurate RTT measurements.

More ACK blocks: QUIC can carry up to 256 ACK blocks, reducing unnecessary retransmissions in lossy networks.

Flow Control

TCP performs flow control only at the connection level using a sliding window. QUIC introduces two levels of flow control:

Stream‑level: each stream has its own receive window that shrinks as data arrives and expands when the receiver processes data.

Connection‑level: the overall receive window is the sum of all stream windows, allowing coordinated throttling across streams.

When the unconsumed portion of a stream falls below half of its maximum window, the receiver sends a WINDOW_UPDATE frame, allowing the sender to transmit more data.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

BackendHTTPQUICHTTP/3network protocolcongestion control
Open Source Linux
Written by

Open Source Linux

Focused on sharing Linux/Unix content, covering fundamentals, system development, network programming, automation/operations, cloud computing, and related professional knowledge.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.