HTTP/1.1 vs HTTP/2 vs HTTP/3 (QUIC) for Frontend Performance
HTTP evolution addresses network inefficiencies that affect frontend performance. HTTP/1.1 relies on multiple TCP connections. HTTP/2 introduces multiplexing over a single connection. HTTP/3 replaces TCP with QUIC (UDP-based), eliminating head-of-line blocking, improving loss recovery, and enabling seamless connection migration — especially valuable on mobile networks.
HTTP/1.1 = many small trucks, each making separate trips (high overhead). HTTP/2 = one big truck carrying everything but stuck in traffic if one box is missing (HoL blocking). HTTP/3 (QUIC) = many smart drones that can reroute independently when one is delayed.
HTTP/1.1
Multiple TCP Connections
HTTP/2
Multiplexed Streams (TCP HoL)
HTTP/3
Independent QUIC Streams
1HTTP/1.1
Uses multiple parallel TCP connections per origin. Suffers from repeated handshakes, slow-start penalties, and connection limits. Inefficient for modern pages with many assets.
Connection 1: index.html Connection 2: style.css Connection 3: script.js ... (up to browser limit)
2HTTP/2
Single TCP connection with multiplexing, header compression (HPACK), and server push. Still limited by TCP head-of-line blocking on packet loss.
3HTTP/3 (QUIC)
Runs over UDP. Independent streams, faster handshake, built-in encryption, better loss recovery, and connection migration. Ideal for mobile and unstable networks.
| Property | HTTP/1.1 | HTTP/2 | HTTP/3 (QUIC) |
|---|---|---|---|
| Mobile | Poor | Better | Excellent (migration) |
| Connections | Multiple per origin | Single | Single (QUIC) |
| Head Of Line | Per connection | TCP-level (affects all streams) | None (per stream) |
| Multiplexing | No | Yes | Yes (independent streams) |
| Loss Recovery | Slow | Medium | Fast |
HTTP/1.1
Mobile
Poor
Connections
Multiple per origin
Head Of Line
Per connection
Multiplexing
No
Loss Recovery
Slow
HTTP/2
Mobile
Better
Connections
Single
Head Of Line
TCP-level (affects all streams)
Multiplexing
Yes
Loss Recovery
Medium
HTTP/3 (QUIC)
Mobile
Excellent (migration)
Connections
Single (QUIC)
Head Of Line
None (per stream)
Multiplexing
Yes (independent streams)
Loss Recovery
Fast
Common questions
- ›“Compare HTTP/1.1, HTTP/2, and HTTP/3 for web performance.”
- ›“What is head-of-line blocking and how does HTTP/3 solve it?”
- ›“Why do mobile users benefit most from HTTP/3?”
- ›“Does upgrading to HTTP/3 automatically make your site faster?”
What interviewers look for
- Clear understanding of multiplexing and HoL blocking
- Knowledge of TCP vs QUIC transport differences
- Connection to frontend metrics (LCP, TTFB, resource loading)
- Realistic view: protocol helps but doesn't replace good architecture
Short answer (60 sec)
HTTP/1.1 uses multiple connections with high overhead. HTTP/2 adds multiplexing over one TCP connection. HTTP/3 uses QUIC over UDP to remove head-of-line blocking, enable faster loss recovery, and support connection migration.
Detailed answer (senior level)
HTTP/2 improves efficiency with multiplexing and header compression but still suffers from TCP-level head-of-line blocking. HTTP/3 eliminates this by using independent QUIC streams. This is especially valuable on mobile networks with frequent handoffs. However, protocol upgrades only multiply the benefits of good caching, prioritization, and asset optimization — they don't fix large JS bundles or poor data fetching.
- Assuming HTTP/2 or HTTP/3 fixes everything
- Ignoring that HTTP/2 can still be blocked by TCP packet loss
- Not measuring real-user impact after protocol upgrade
- Forgetting CDN/edge configuration affects protocol benefits
- Over-relying on server push in HTTP/2
- ✓HTTP/1.1: Multiple connections, high overhead
- ✓HTTP/2: Multiplexing over TCP, better bandwidth use
- ✓HTTP/3 (QUIC): Independent streams, no HoL blocking, fast recovery
- ✓Mobile networks benefit most from QUIC's connection migration
- ✓Protocol improvements amplify good frontend practices but don't replace them
- ✓Always validate with real-user metrics (LCP, INP, resource timing)