What Is HTTP/3 and QUIC?
Learn HTTP/3 and QUIC — UDP-based transport, no head-of-line blocking, faster handshakes, and connection migration — interview Q&A.
Expected Interview Answer
HTTP/3 is the third major version of HTTP that runs over QUIC, a transport protocol built on UDP, instead of TCP — this eliminates TCP-level head-of-line blocking, folds TLS 1.3 handshake into connection setup, and lets connections survive an IP address change.
HTTP/2 introduced stream multiplexing over a single TCP connection, but because TCP guarantees one ordered byte stream, a single lost TCP segment still stalls every multiplexed HTTP/2 stream behind it. QUIC solves this by multiplexing independent streams directly at the transport layer over UDP, so a lost packet only blocks the one stream it belongs to. QUIC also integrates the TLS 1.3 handshake with connection establishment, often reaching an encrypted, usable connection in one round trip (or zero round trips on a resumed connection), versus the separate TCP handshake plus TLS handshake HTTP/2 requires. Each QUIC connection is tagged with a connection ID rather than the traditional four-tuple, so it can survive a client changing networks (e.g., Wi-Fi to cellular) without a fresh handshake — a feature called connection migration. Because QUIC runs in userspace over UDP, browsers and servers can iterate on it without waiting for OS kernel updates, though some middleboxes and firewalls still block or throttle UDP, requiring fallback to HTTP/2.
- Eliminates transport-level head-of-line blocking between streams
- Combines transport and TLS 1.3 handshake for faster connection setup
- Connection migration survives network changes without renegotiation
- Runs in userspace over UDP, enabling faster protocol iteration
AI Mentor Explanation
HTTP/2 over TCP is like a single delivery chute feeding balls to six different net practice lanes — if the chute jams, every lane waits even though five of the six practice stations are ready. HTTP/3 over QUIC is like giving each net lane its own direct feed, so a jam in the chute for lane three never stops lanes one and two from continuing their drills. QUIC also lets a bowler switch training grounds mid-session without re-registering with the coach, mirroring how a QUIC connection migrates across networks using a connection ID instead of address and port.
Step-by-Step Explanation
Step 1
UDP transport
QUIC builds a reliable, ordered transport directly on top of UDP instead of relying on the kernel TCP stack.
Step 2
Combined handshake
QUIC folds the TLS 1.3 handshake into connection setup, reaching a secure connection in one round trip (0-RTT on resumption).
Step 3
Independent streams
Multiple HTTP/3 streams multiplex over QUIC without transport-level head-of-line blocking between them.
Step 4
Connection migration
A QUIC connection ID lets the session survive a client changing IP address or network without a new handshake.
What Interviewer Expects
- Explains QUIC runs over UDP, not TCP
- Names transport-level head-of-line blocking as the problem HTTP/3 fixes over HTTP/2
- Mentions the combined TLS 1.3 + transport handshake and 0-RTT resumption
- Describes connection migration via connection ID
Common Mistakes
- Claiming HTTP/3 simply adds more multiplexing to TCP
- Not knowing QUIC is built on UDP
- Confusing HTTP/2 multiplexing (application-level) with QUIC solving it at the transport level
- Forgetting that some networks block or throttle UDP, requiring fallback
Best Answer (HR Friendly)
“HTTP/3 is the newest version of the web protocol, and its biggest change is swapping out TCP for a new transport called QUIC, which runs over UDP. That fixes a subtle problem where one lost packet used to stall every other request sharing the same connection, and it also makes connections start faster and survive switching from Wi-Fi to mobile data seamlessly, which is a big deal for how fast and reliable websites feel on phones.”
Code Example
# Check if a server advertises HTTP/3 via the Alt-Svc header
curl -sI --http2 https://example.com | grep -i alt-svc
# alt-svc: h3=":443"; ma=86400
# Request over HTTP/3 directly (requires curl built with QUIC support)
curl --http3 -sI https://example.com
# Inspect QUIC packets with tshark (UDP port 443)
tshark -f "udp port 443" -Y quicFollow-up Questions
- How does QUIC avoid transport-level head-of-line blocking that HTTP/2 still has?
- What is 0-RTT resumption and what security tradeoff does it involve?
- How does a QUIC connection ID enable connection migration?
- Why do some corporate networks block or degrade QUIC/HTTP/3 traffic?
MCQ Practice
1. What transport protocol does QUIC run on top of?
QUIC is built directly on UDP, implementing its own reliability and congestion control in userspace.
2. What problem does HTTP/3 solve that HTTP/2 over TCP still has?
HTTP/2 multiplexes streams over one TCP connection, so a single lost TCP segment still blocks all streams; QUIC multiplexes at the transport layer, avoiding this.
3. What QUIC feature allows a connection to survive a client changing networks?
QUIC identifies connections by a connection ID rather than the IP/port four-tuple, allowing migration across network changes.
Flash Cards
What transport does HTTP/3 use? — QUIC, which runs over UDP instead of TCP.
What does QUIC fix versus HTTP/2? — Transport-level head-of-line blocking between multiplexed streams.
What is QUIC connection migration? — A connection surviving a client IP/network change via a persistent connection ID, not IP/port.
How fast is a QUIC handshake? — Often one round trip for a new connection, zero round trips (0-RTT) on resumption.