HTTP 2 vs HTTP 3 — What's the Difference?

Mike's Notes

Useful background information.

Resources

References


Repository

  • Home > 

Last Updated

23/03/2025

HTTP 2 vs HTTP 3 — What's the Difference?

By: Nikky Siapno
Level Up Coding: 23/03/2025

HTTP 1 started in 1996. The very next year HTTP 1.1 followed. It was another ~20 years until HTTP 2 became standardized in 2015. And in recent years (2022), HTTP 3 was officially standardized.

But what’s the difference?

Starting at the foundation:

HTTP 1.1:

  • Persistent connections — Reuses connections instead of opening new ones
  • Chunked transfers — Sends data in parts instead of waiting for the full response
  • Improved caching — Introduced headers for better caching and connection management
  • Sequential requests — Requests block each other (HoL blocking at the request level)
  • Multiple connections needed — Browsers used multiple TCP connections for speed
  • It introduced core features still used today.

HTTP 2:

  • Multiplexing — Multiple requests in a single TCP connection
  • Header compression (HPACK) — Reduces metadata size
  • Stream prioritization — Ensures critical resources load first
  • Head-of-line (HoL) blocking — A lost packet blocks all streams
  • While HTTP 2 optimized TCP, it remained constrained by TCP’s head-of-line blocking.

HTTP 3:

  • Built on QUIC (UDP) — No more TCP bottlenecks
  • Independent streams — Packet loss in one stream doesn’t affect others
  • Faster handshakes — Combines transport + encryption setup in one step
  • Mandatory encryption (TLS 1.3) — Security by default
  • Connection migration — Seamless across network changes

In a nutshell: HTTP 2 optimized TCP, but HTTP 3 rewrites the game with QUIC, making it faster, more reliable, and encrypted by default.

Which fact surprised you?

No comments:

Post a Comment