RFC 9114

HTTP/3
Standards Track
June 2022
Abstract: This document describes HTTP/3, a mapping of HTTP semantics over QUIC. HTTP/3 provides multiplexed transport without head-of-line blocking, using QUIC streams for independent HTTP exchanges. It replaces TCP+TLS as the transport layer for HTTP with the QUIC transport protocol.
Canonical source: https://www.rfc-editor.org/rfc/rfc9114  |  IETF Datatracker

Overview

▶

HTTP/3 is the third major version of HTTP, designed to address head-of-line (HOL) blocking that TCP-based HTTP/2 suffers from. By running over QUIC instead of TCP, each HTTP stream is independently flow-controlled, so packet loss on one stream does not block other streams.

While 3GPP currently mandates HTTP/2 for SBI (TS 29.500), HTTP/3 is being evaluated as a future SBI transport for improved latency and reliability in 5G core network intra-NF communication.

HTTP/2 vs HTTP/3

▶
Feature HTTP/2 HTTP/3
Transport TCP + TLS 1.3 QUIC (UDP + TLS 1.3 integrated)
HOL Blocking Yes (TCP layer) No (per-stream independence)
Connection Setup TCP 3WHS + TLS handshake 0-RTT or 1-RTT (combined)
Header Compression HPACK QPACK
Multiplexing Streams (shared TCP) Streams (independent QUIC)
Connection Migration No Yes (Connection ID based)
Loss Recovery TCP retransmission Per-stream QUIC recovery

QUIC Transport Foundation

▶

HTTP/3 runs exclusively over QUIC (RFC 9000). QUIC provides built-in encryption (TLS 1.3), reliable delivery per-stream, connection migration, and flow control at both stream and connection levels.

  ┌───────────────────────┐
│      HTTP/3           │  Application
├───────────────────────┤
│      QPACK            │  Header Compression
├───────────────────────┤
│      QUIC             │  Transport
│  (streams, reliability│
│   flow control, CC)   │
├───────────────────────┤
│   TLS 1.3 (built-in)  │  Security
├───────────────────────┤
│       UDP             │  Network
└───────────────────────┘

Stream Mapping

▶

HTTP/3 maps request-response pairs to individual QUIC streams. Each stream is independent — loss affecting one request does not delay others.

  • Client-initiated bidirectional streams: One per HTTP request-response exchange
  • Server-initiated bidirectional streams: Server push (rarely used)
  • Unidirectional streams: Control stream, QPACK encoder/decoder streams
  • Connection-level: SETTINGS, GOAWAY frames on the control stream

QPACK Header Compression

▶

QPACK replaces HPACK from HTTP/2 to avoid HOL blocking in header compression. HPACK uses a single dynamic table that creates ordering dependencies; QPACK decouples encoding from delivery order using a separate encoder stream and acknowledgment mechanism.

Connection Migration

▶

QUIC's Connection ID mechanism allows HTTP/3 connections to survive IP address changes (e.g., Wi-Fi to cellular). This is particularly relevant for 3GPP scenarios where UEs may change access networks while maintaining SBI-facing connections through intermediary proxies.

3GPP Relevance

▶
  • Future SBI transport: 3GPP SA2/CT4 studying HTTP/3 as SBI transport in Rel-18+ for improved NF-to-NF latency
  • HOL blocking elimination: Multiple concurrent service operations (Nausf, Namf, Nsmf) won't block each other on packet loss
  • 0-RTT connection setup: Reduced latency for NF-to-NF first-request across core network
  • Connection migration: Useful for mobile edge computing scenarios where UPF connections may shift
  • NEF/AF exposure: Third-party API exposure could benefit from HTTP/3 for mobile clients