Перейти к содержимому
Skip to content
← All articles

HTTP/2 vs HTTP/3: What's New and Why Upgrade

The Evolution of HTTP

HTTP/1.1 served the web for over 15 years, but its limitations — head-of-line blocking, maximum 6 parallel connections per domain — held back progress. HTTP/2 (2015) solved many issues, and HTTP/3 (2022) rewrote the transport layer from scratch, switching from TCP to QUIC.

HTTP/2: Key Improvements

Multiplexing

HTTP/2 allows multiple requests and responses in parallel over a single TCP connection. In HTTP/1.1, parallelism requires separate connections (up to 6 per domain).

Header Compression (HPACK)

HTTP/1.1 sends headers as text, often repeating the same ones (Cookie, User-Agent). HPACK compresses headers using tables and Huffman encoding, reducing size by 85-95%.

Server Push

The server can send a resource before the browser requests it. For example, sending CSS and JS along with HTML. In practice, this feature is rarely used and is being removed from browsers.

Stream Prioritization

The browser indicates resource priorities to the server: CSS and JS higher than images. This allows the server to send critical resources first.

The HTTP/2 Problem

HTTP/2 uses TCP, which has its own head-of-line blocking: losing a single packet blocks all streams in the connection until the packet is retransmitted. On lossy networks (mobile, Wi-Fi), this can negate the benefits of multiplexing.

HTTP/3: The QUIC Revolution

QUIC Instead of TCP

HTTP/3 runs on QUIC — a protocol developed by Google and standardized by the IETF. QUIC uses UDP but implements reliability, flow control, and encryption at the protocol level.

Solving Head-of-Line Blocking

In QUIC, streams are independent. A lost packet in one stream doesn't block others. On networks with 1% loss, HTTP/3 can be 3x faster than HTTP/2.

Built-in Encryption (TLS 1.3)

QUIC integrates TLS 1.3 into the protocol. There's no option to use QUIC without encryption. This simplifies the stack and enhances security.

0-RTT (Zero Round Trip Time)

When reconnecting to a server, QUIC can send data with the very first packet, without waiting for a handshake. This reduces latency to zero for repeat visits.

Connection Migration

In TCP, a connection is bound to IP address and port. When switching from Wi-Fi to cellular, the TCP connection drops. QUIC uses a Connection ID, allowing the session to continue on a new IP without reconnecting.

Improved Loss Recovery

QUIC has more accurate RTT estimation and improved congestion control compared to TCP. This is especially noticeable on long and unstable connections.

Performance Comparison

How to Check Support

Use the Enterno.io HTTP Checker to inspect your server's response headers. The alt-svc header with an h3 parameter indicates HTTP/3 support.

In Chrome DevTools, the Network tab's Protocol column shows h2 for HTTP/2 and h3 for HTTP/3.

How to Enable HTTP/3

nginx (1.25.0+)

server {
    listen 443 ssl;
    listen 443 quic;          # HTTP/3
    http2 on;                  # HTTP/2

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    add_header Alt-Svc 'h3=":443"; ma=86400';
}

CDN

Most CDNs (Cloudflare, Fastly, AWS CloudFront) support HTTP/3 out of the box — simply enable the option in the control panel.

Summary

HTTP/3 is a significant step forward, especially for mobile users and unstable networks. Key advantages: eliminated HOL blocking, 0-RTT for repeat visits, seamless connection migration. If your CDN or web server supports HTTP/3, enable it. On stable networks the difference will be minimal, but for mobile users it will be noticeable.

Check your website right now

Check now →
More articles: HTTP
HTTP
Server-Sent Events vs WebSockets: Choosing Real-Time Communication
16.03.2026 · 21 views
HTTP
X-Forwarded-For Header: Understanding Client IP Behind Proxies
16.03.2026 · 12 views
HTTP
HTTP Status Codes: Complete Reference with Examples
10.03.2025 · 22 views
HTTP
HTTP Caching Guide: Cache-Control, ETag, Expires
14.03.2026 · 9 views