While using an open-source tool recently, I noticed significantly lower latency with a UDP-based protocol, which drew my attention to HTTP/3. In simple terms, HTTP/3 solves a fundamental problem at the TCP protocol layer: Head-of-Line Blocking (HOL Blocking).
Core Issue
Although HTTP/2 implemented multiplexing at the application layer, it still relies on TCP at the lower layer. When packet loss occurs, TCP blocks the entire connection, waiting for retransmission, and cannot process other data streams even if they have arrived. This is especially noticeable in poor network conditions.
HTTP/3, based on the QUIC protocol (running over UDP), fundamentally solves this problem:
Independent Stream Control: Packet loss in one stream does not affect others.
0-RTT Connection Establishment: After the first connection, subsequent connections can achieve zero latency.
Connection Migration: Switching networks (e.g., WiFi to 4G) does not require re-handshaking.
Built-in TLS 1.3: Security and performance are achieved simultaneously.
Protocol Comparison
Contents
Reading time
7 minutes
Feature
HTTP/1.1
HTTP/2
HTTP/3
Multiplexing
No
Yes (Application Layer)
Yes (Transport Layer)
Header Compression
No
Yes (HPACK)
Yes (QPACK)
Prioritization
No
Yes
Yes
Server Push
No
Deprecated
No
0-RTT
No
No
Yes
HOL Blocking
Severe
Present at Transport Layer
None
Connection Migration
No
No
Yes
Security
Optional
Mandatory TLS
Mandatory TLS 1.3
Transport Protocol
TCP
TCP
QUIC (over UDP)
Key Feature Explanations
Multiplexing
HTTP/2: Application-layer multiplexing, but TCP layer still suffers from HOL blocking.
HTTP/3: Native support at the transport layer, with each stream transmitted independently.
0-RTT Connection Establishment
Once the client has cached the server configuration, subsequent connections can send application data in the first packet without waiting for the handshake to complete. This significantly improves performance for short-lived connections (like API requests).
Connection Migration
QUIC uses a Connection ID instead of a 4-tuple (IP + Port) to identify connections, allowing mobile devices to switch networks without re-establishing the connection.
QPACK vs HPACK
QPACK is an improvement over HPACK, allowing for out-of-order decoding of headers, thus avoiding HOL blocking caused by header compression in HTTP/2.
Applicable Scenarios
Recommended Usage
Mobile applications/websites (frequent network switching)
Services in poor network environments (e.g., overseas users)
Applications requiring high real-time performance (online meetings, gaming)
Browser Side: Fully supported by mainstream browsers.
Server Side: Mainstream servers like Nginx and Caddy have stable support.
CDN: Gradually being enabled by major CDN providers.
Projection: Expected to become the mainstream protocol by 2025.
Is Migration Worthwhile?
Recommended Migration
High proportion of mobile users.
Overseas users.
High performance requirements.
Using a CDN that supports HTTP/3.
Can Wait and See
Pure intranet applications.
User base with restricted network environments.
Strained server resources.
Migration Cost: Low (only configuration changes required, no code changes)
Risk: Low (automatic fallback, does not affect unsupported clients)
Benefit: Medium to High (depending on user network environment)