About
What this site is
An independent write-up of what happens between typing an address and seeing a page, arranged as a register: six stages, in order, each with what it is allowed to assume.
The subject is usually taught as a list of technologies. It reads better as a sequence of handovers. A name is resolved by a machine that holds no map of the internet; a connection is trusted on the strength of a list that shipped with the operating system; a tree is built out of a document that has not finished arriving; a page is held blank until the rules are known. Each stage does its work on an assumption it cannot verify, and most of what looks like a delay is one system waiting to be told something by another.
How it is checked
Every mechanism described here is traced to the document that specifies it, and that document is named in the piece rather than left implied — the DNS specifications of 1987, the TLS and HTTP RFCs at the IETF, the HTML and DOM standards at the WHATWG, the CSS specifications at the W3C. Where behaviour is not specified but simply agreed between engines, the pieces say so, because that distinction is the whole of stage six.
Where people are named, they are named for a specific decision: Paul Mockapetris for the design of the DNS, Tim Berners-Lee and Robert Cailliau for the first server and the proposal that funded it, Nicola Pellow for the Line Mode Browser, Håkon Wium Lie and Bert Bos for style sheets, Mike Belshe and Roberto Peon for the work that became HTTP/2.
What it is not
It is not a performance-tuning guide and it carries no benchmarks. Numbers that would need measuring to be true are left out; the pieces stay with mechanisms, which do not change with the week. Nothing here is sponsored editorially — the marks under the masthead support the publication, not any particular piece.
Corrections
A mechanism described wrongly is worth more to us corrected than defended. If something here is out of date or simply mistaken, say so and it will be changed.