Digizap

Your digital pocket knife.

Knowledge base

HTTP/2 and HTTP/3: is your site already speaking v3?

The modern web runs three HTTP versions — 1.1, 2 and 3 — and the interesting question is not which version your server supports, but which one your visitor’s browser actually negotiated. That happens per connection, per place and per browser: a site announcing HTTP/3 can keep a visitor answering HTTP/2 for a long time, and a CDN decides per place.

The three versions differ in how they carry conversations, not in what they say. HTTP/1.1 does one request and answer after the other; HTTP/2 weaves all resources of a page through one connection; HTTP/3 moves the whole trade to QUIC — UDP with its own rules — and that pays off exactly where HTTP/2 stumbles: on connections losing packets and on many parallel requests.

Start at the HTTP/3 and HTTP/2 probe: your browser asks the address three times on your own connection and shows which protocol it negotiated — where it reveals it — per sample with response time, and the ALPN handshake of our server measures the same address from our own address. What you measure is what this browser measures on this connection, plus what our server negotiated on its own.

1. What the versions distinguish

HTTP/1.1 answers one question at a time per connection, and because a browser opens about six connections per origin, a page with many resources gets a queue: the slowest script blocks the next request that already stands ready — head-of-line blocking. HTTP/2 breaks that queue: one connection, all resources interwoven, headers compressed. For an ordinary page with many resources, that is the biggest gain of the whole list.

HTTP/3 keeps the meaning of HTTP/1.1 and 2 but moves the transport from TCP to QUIC, always with TLS 1.3 inside — a separate story in TLS: what is still open. The gain lies in loss: because QUIC does not demand that every packet arrives in order, a lost packet no longer blocks the whole connection, and a new connection stands faster. For one quiet request from a quiet address the difference is often inaudible.

2. How a browser knows: ALPN and Alt-Svc

During the TLS handshake, browser and server agree via ALPN on which protocol the connection speaks — h2 or http/1.1 for TCP connections, h3 for a QUIC connection on the same address. That choice falls before the first byte of HTTP, so it is measurable without reading anything of the content. Whether the browser also reports it to the page is a second question: Chrome and Chrome-like browsers do not know response.protocol — which is why the probe measures the handshake of our own server itself, from our own address.

HTTP/3 is mostly discovered rather than typed: a server announces h3 through the Alt-Svc header, and the browser tries QUIC on a later visit. So the first visit may still run over HTTP/2 while the second already speaks HTTP/3 — that is why the probe takes three samples: one connection keeps its once-chosen protocol, and new connections show what is actually available.

3. Measure on your own connection

The probe measures with your own browser’s fetch — no headers and no content, only the outcome of the connection and the time, and the protocol only where the browser reveals it to the page. That is why a handshake row stands beside the browser row: it measures the same address from our own server. The language of honesty: which browser you measure in matters, because older browsers do not know HTTP/3 through fetch yet, and then "not measured" is not "not present". Repeat the measurement in a recent browser or from another place before drawing a judgement, and remember that a CDN may choose per place.

And the server side stands beside the browser side: the website scan reports the HTTP version with which your site answers our server, as a finding with advice; the SSL test shows which TLS versions the address still has open — because h3 without modern TLS does not exist.

4. When v3 pays off — and when it does not

HTTP/3 pays off where packets are lost and connections are many: mobile networks, streams, many parallel requests, visitors on the move. HTTP/2 is already enough for an ordinary page on a stable connection — the step to v3 is not a grade that can be higher, it is a choice about which visitors you have. And at managed hosting or a CDN, that party decides for you, per place.

Measure before you choose: three samples on the probe, the negotiated protocol per sample; if you find http/1.1, first look at which TLS and which hosting you actually run (TLS: what is still open is the layer underneath) before searching for a QUIC switch.

Measure it yourself: HTTP/3 and HTTP/2 probe

Measure in three samples on your own connection whether a site speaks HTTP/3, HTTP/2 or HTTP/1.1 — where your browser reveals the protocol — with the ALPN handshake from our server as a second direction of looking.

Read on