HTTP/2 connection reuse: what it changes for page load
A page rarely needs a single request. A typical article pulls a stylesheet, a script, a handful of images and a font, and before HTTP/2 each of those competed for a limited number of parallel connections.
HTTP/2 changes the model: one TCP connection carries many streams. Requests no longer queue behind each other at the connection level, and headers are compressed, so repeated cookies and user-agent strings stop dominating small responses.
Three practical consequences
- Domain sharding is counterproductive. Splitting assets across hostnames forces extra DNS lookups and TLS handshakes and prevents one connection from being reused.
- Bundling still matters, but less. Many small files are cheaper than they used to be, though each one still costs a request header and a stream slot.
- Connection lifetime matters. A connection closed after a few seconds throws away the work of the handshake. Keep-alive timeouts of a minute or more are reasonable for static sites.
To check what your own site does, open the network panel in your browser, enable the protocol column and look for h2 on every row. If some rows say http/1.1, a proxy or a third-party host in the chain is downgrading them.