Understanding HTTP History and QUIC: Protocol Evolution, Features, and Performance
This article reviews the evolution of HTTP from its early versions to HTTP/3, explains the QUIC protocol and its advantages over TCP, and discusses connection establishment, migration, head‑of‑line blocking, congestion control, and flow control mechanisms that improve modern web performance.
The article begins with a brief timeline of HTTP development, listing key milestones such as HTTP/1.1 (1991), SPDY (2009), QUIC (2013), HTTP/2 (2015), and HTTP/3 (2018), and notes that HTTP/3 uses UDP to achieve higher speed without sacrificing TLS security.
It then provides an overview of the QUIC protocol, describing QUIC as a UDP‑based transport that combines the benefits of TCP, TLS, and HTTP/2 while adding its own optimizations, and explains that HTTP/3 is essentially HTTP over QUIC.
The next section explains RTT‑based connection establishment, comparing the number of round‑trip times required for HTTP/2 (up to 3 RTT) versus HTTP/3, which can establish a connection with just 1 RTT and subsequent connections with 0 RTT, and outlines the DH key‑exchange steps used in QUIC.
Connection migration is covered, highlighting that TCP connections break when the four‑tuple changes, whereas QUIC uses a 64‑bit Connection ID that remains stable across IP or port changes, allowing seamless migration.
The article discusses head‑of‑line (HOL) blocking in HTTP/1.1 and HTTP/2, explaining how TCP’s ordered delivery and TLS record framing cause HOL issues, and shows how HTTP/2 multiplexing mitigates but does not fully eliminate them.
It then details how QUIC solves HOL blocking by encrypting and transmitting data in independent packets over UDP, eliminating the need for ordered delivery and reducing TLS‑related blocking.
Congestion control is examined, describing TCP’s slow start, congestion avoidance, fast retransmit, and fast recovery, and noting that QUIC adopts the Cubic algorithm while offering hot‑plugging of congestion control strategies at the application layer.
Additional QUIC features such as forward error correction (FEC), monotonic packet numbers to avoid ACK ambiguity, ACK delay handling for more accurate RTT measurement, and the ability to carry up to 256 ACK blocks are explained.
Finally, the article covers flow control in QUIC, distinguishing between stream‑level and connection‑level flow control, describing how receive windows are managed, and how QUIC updates windows using WINDOW_UPDATE frames to maintain efficient data transfer.
Top Architect
Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.