ESC
Type to search guides, tutorials, and reference documentation.
Verified by Garnet Grid

QUIC and HTTP/3

Understand QUIC protocol and HTTP/3 for next-generation web performance. Covers connection establishment, multiplexing improvements over HTTP/2, migration support, and the patterns that reduce latency and improve reliability on modern networks.

HTTP/3 is the next major version of HTTP, built on QUIC instead of TCP. QUIC eliminates head-of-line blocking, reduces connection establishment time from 2-3 round trips to zero, and handles network changes (like switching from Wi-Fi to cellular) without dropping connections. It is already used by Google, Cloudflare, and Meta for production traffic.


Why QUIC

HTTP/1.1 over TCP:
  Connection: TCP 3-way handshake (1 RTT)
  TLS: TLS handshake (1-2 RTT)
  Request: Send request, wait for response
  Total first byte: 2-3 RTT minimum
  
  Head-of-line blocking:
  TCP guarantees ordered delivery
  If packet 1 is lost, packets 2, 3, 4 must wait
  One lost packet blocks ALL streams

HTTP/2 over TCP:
  Multiplexing: Multiple requests on one connection
  Header compression: HPACK
  Server push
  
  Still head-of-line blocking at TCP layer!
  One lost TCP packet blocks ALL HTTP/2 streams

HTTP/3 over QUIC:
  Connection: 0-RTT (if previously connected)
  TLS 1.3: Built into QUIC (not a separate layer)
  
  No head-of-line blocking:
  QUIC is UDP-based, streams are independent
  Lost packet on stream A does NOT block streams B, C, D
  
  Connection migration:
  Switch from Wi-Fi → cellular without dropping connection
  QUIC uses Connection IDs, not IP:port tuples

Performance Comparison

Connection Establishment:
  TCP + TLS 1.2:  3 round trips (RTT)
  TCP + TLS 1.3:  2 round trips
  QUIC (new):     1 round trip
  QUIC (resumed): 0 round trips (0-RTT!)

  For a user on 100ms RTT:
    TCP + TLS 1.2: 300ms before first byte
    QUIC (new):    100ms before first byte
    QUIC (0-RTT):  0ms additional latency

Head-of-Line Blocking:
  Scenario: 10 HTTP requests, 1% packet loss
  
  HTTP/2 over TCP:
    Lost packet blocks ALL 10 streams
    P99 latency: High spike
  
  HTTP/3 over QUIC:
    Lost packet blocks only the 1 affected stream
    9 other streams continue unaffected
    P99 latency: Much lower

Enabling HTTP/3

# Nginx with HTTP/3 (QUIC)
server {
    listen 443 ssl;
    listen 443 quic reuseport;  # Enable QUIC
    
    http2 on;
    http3 on;                     # Enable HTTP/3
    
    ssl_certificate     /etc/ssl/cert.pem;
    ssl_certificate_key /etc/ssl/key.pem;
    
    # Advertise HTTP/3 support via Alt-Svc header
    add_header Alt-Svc 'h3=":443"; ma=86400';
    
    # QUIC-specific settings
    quic_retry on;  # Address validation for DDoS protection
    ssl_early_data on;  # Enable 0-RTT
}

# CloudFlare: HTTP/3 enabled by default (toggle in dashboard)
# AWS CloudFront: HTTP/3 supported (opt-in)
# Fastly: HTTP/3 supported via QUIC

Anti-Patterns

Anti-PatternConsequenceFix
Block UDP at firewallQUIC cannot functionAllow UDP 443
No Alt-Svc headerClients cannot discover HTTP/3 supportAdd Alt-Svc header to responses
No fallback to HTTP/2Older clients brokenServer supports both, client negotiates
0-RTT without replay protectionReplay attacks possibleLimit 0-RTT to idempotent requests
No HTTP/3 monitoringCannot measure adoption or performanceTrack protocol version in access logs

HTTP/3 is not just another protocol version — it is a fundamental change from TCP to UDP-based transport. For mobile users on lossy networks, the performance difference is dramatic: fewer stalls, faster loads, and seamless network transitions.

Jakub Dimitri Rezayev
Jakub Dimitri Rezayev
Founder & Chief Architect • Garnet Grid Consulting

Jakub holds an M.S. in Customer Intelligence & Analytics and a B.S. in Finance & Computer Science from Pace University. With deep expertise spanning D365 F&O, Azure, Power BI, and AI/ML systems, he architects enterprise solutions that bridge legacy systems and modern technology — and has led multi-million dollar ERP implementations for Fortune 500 supply chains.

View Full Profile →