Understanding what happens between typing a URL and seeing a page turns “the internet is slow/broken” into a diagnosable sequence of steps. It helps you reason about performance (where time is spent), reliability (what can fail), and security (what’s protected and how). After this primer, you’ll have a simple mental timeline you can apply to real sites using everyday browser tools.
A browser doesn’t “go to a website” in one move—it runs a pipeline with distinct stages. Most problems and delays come from one stage, not all of them.
The browser breaks the URL into pieces: scheme (https), host (example.com), optional port, and path/query (/products?x=1). The scheme implies rules: HTTPS means encryption and identity checks; it also tends to use port 443 by default.
Humans type names; networks route to IP addresses. DNS is the “phone book” that maps example.com to an IP. Caching is everywhere (browser/OS/router/ISP), so DNS is often fast—until it’s not.
To talk to the server, the browser establishes a connection. Traditionally this is TCP (reliable delivery), and for HTTPS it adds TLS (encryption + server identity). Handshakes add round trips, but enable security and modern features.
The browser sends an HTTP request (method like GET, headers, cookies) and receives an HTTP response (status code, headers, body like HTML).
The first HTML usually references more resources—CSS, JS, images, fonts. The browser parses, builds internal models, runs scripts, lays out the page, and paints pixels.
A useful mantra: Name → Address → Secure connection → HTTP → Render.
A page never starts loading and the browser shows “DNS_PROBE_FINISHED_NXDOMAIN.” Which stage of the pipeline failed most directly?
NXDOMAIN means “that domain name doesn’t exist” from the perspective of DNS. It’s common to assume “the website is down,” but this message points earlier than HTTP or rendering: the browser can’t even find an IP to connect to. TLS negotiation failures happen after you’ve reached the server; HTTP 404 requires a successful HTTP exchange; JavaScript/HTML parsing happens after content has already arrived.