Why pages feel slow
Take the cold first visit from lesson 1 and change nothing about the page. Change only the link underneath it — 200 ms of latency instead of 20, and a fraction of the bandwidth.
Both halves went up. Only one of them mattered.
The bandwidth drop made the bodies take longer to transfer. That is linear, predictable, and usually the smaller number. The latency increase multiplied every
round trip in the load — and a cold HTTPS page load contains four before the HTML exists, plus one more for every resource discovered afterwards.
Cost of one page load, roughly: (number of round trips x latency) + (total bytes / bandwidth) ^ ^ grows with distance and protocol grows with page weight design; unfixable by paying more fixable by sending lessThis is why a satellite link with more bandwidth than 3G still feels worse, and why essentially every protocol change of the last decade — TLS 1.3's single round trip, session resumption, QUIC folding the transport and TLS handshakes together — has been an attack on the left-hand term.
The other multiplier: how many requests queue
Latency sets the price of one round trip. The protocol decides how many of them you are forced to make in sequence — and that is the part you can actually change.
Under HTTP/1.1 a browser opens about six connections per host and everything else waits in line, so twenty-four resources become four rounds of queueing. HTTP/2 sends them all at once over one connection and that queue disappears. What does not disappear is
head-of-line blocking underneath: TCP still delivers in order, so one lost segment stalls every stream sharing the connection.
Key takeaways
- A page load costs round trips times latency, plus bytes over bandwidth. On most pages the first term is the larger one.
- Distance sets latency and nothing you buy changes it. That is why moving content closer is the only real fix.
- Protocol design is the other lever: every handshake optimisation of the last decade removes round trips, not bytes.
- HTTP/1.1 queues requests behind six connections; HTTP/2 removes that queue entirely.
- HTTP/2 cannot remove TCP’s in-order delivery, so one lost segment stalls every multiplexed stream — the problem QUIC exists to solve.