8 min
  • TCP/IP
  • HTTP

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.

Loading the Internet Simulator simulation…

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.

text
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 less

This 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.

Check yourself
A page is slow for users on another continent. Your host offers to double your bandwidth. What happens?

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.

Loading the HTTP Explorer simulation…

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.

Predict what happens next
HTTP/2 multiplexes twenty-four downloads over one TCP connection. One segment is lost. Which downloads stall?

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.

Take it further