1. Library
  2. Start Here

Updated 46 minutes ago

Every website visit is an act of translation.

You type words humans can remember. Your computer needs numbers machines can route. Between that gap—between www.example.com and the server that holds the page—lies a chain of lookups, handshakes, and negotiations that completes before you can lift your finger from the Enter key.

Finding the Address

Computers don't understand names. They understand numbers—IP addresses like 142.250.80.46. But humans are the opposite. We remember google.com. We forget 142.250.80.46 before we finish reading it.

DNS bridges this gap. When you type a URL, your computer asks a DNS server: "What's the IP address for this domain?" If that server doesn't know, it asks another. That server asks another. The query climbs a global hierarchy of nameservers until one of them answers authoritatively.

This entire chain—your computer asking a server that asks a server that asks a server—typically completes in 20-50 milliseconds. By the time you've released the Enter key, your computer already knows where to send its request.

The Trust Ritual

Knowing the address isn't enough. Your computer and the server have never met. They need to establish that they're both present, both listening, both speaking the same language.

TCP handles this through a three-way handshake:

  1. Your computer sends a SYN: "I want to connect."
  2. The server responds with SYN-ACK: "I hear you. I'm ready."
  3. Your computer confirms with ACK: "Confirmed. Let's begin."

Three messages to establish trust between strangers who have never met and will forget each other immediately after.

For secure connections (anything starting with https://), there's another negotiation layered on top—a TLS handshake where both sides agree on encryption keys. After this, every byte traveling between you and the server is scrambled in a way only the two of you can unscramble.

All of this—the trust ritual, the encryption setup—happens before a single byte of your actual request is sent.

The Request

Now your browser composes what it actually wants: an HTTP request.

This isn't vague. It's precise. Your browser specifies exactly which resource it wants (/index.html), which version of HTTP it speaks, what languages it prefers, what formats it can accept, and any cookies the site gave it during previous visits.

The request travels down the encrypted channel and arrives at the server.

The Response

The server reads your request and assembles a response. For a webpage, this means finding the HTML document, gathering the CSS that styles it, locating the JavaScript that makes it interactive.

The response doesn't travel as one piece. Large files get broken into packets—small chunks that can take different routes through the Internet. Your request for a single webpage might travel through thirty different countries, be copied and reassembled dozens of times, and arrive in less time than it takes to blink.

We call this "loading."

The Rendering

Your browser receives the HTML and starts parsing it like a set of instructions: header here, paragraph there, image in this spot.

As it reads, the browser discovers references to other resources—stylesheets, scripts, images, fonts. Each reference triggers another request. A complex page might require hundreds of additional fetches, each following the same chain: DNS lookup (usually cached now), TCP connection (often reused), request, response.

The resources arrive and slot into place:

  • CSS determines appearance—colors, fonts, spacing, layout
  • JavaScript adds behavior—buttons that respond, forms that validate, content that updates
  • Images and media fill in the visual elements

The page assembles itself, usually in under a second. Sometimes you see it happen: text appears first, then images pop in as they load, then interactive elements activate as scripts finish executing.

The Ongoing Conversation

Even after the page appears complete, the conversation often continues.

Modern websites maintain persistent connections for real-time updates. They fetch additional data as you scroll. They send telemetry about how you're interacting with the page. A "static" webpage might generate dozens of background requests while you read it.

The connection your computer established doesn't close the moment the page loads. It often stays open, waiting for the next exchange.

Where Things Break

Understanding this chain reveals where failures happen:

  • DNS fails → your computer can't find the address. "Server not found."
  • TCP times out → the connection can't be established. "Connection refused."
  • TLS fails → the encryption negotiation breaks. "Your connection is not private."
  • HTTP errors → the server can't fulfill your request. "404 Not Found" or "500 Internal Server Error."
  • Rendering fails → the browser can't parse what it received. Broken layouts, missing images, JavaScript errors.

Each step is a potential failure point. Each step has to work.

The Speed of Trust

The Internet feels instant because all this complexity executes in milliseconds. DNS lookup. TCP handshake. TLS negotiation. HTTP request. Response. Parsing. Rendering. Hundreds of additional fetches.

Your request traveled through routers on multiple continents, was encrypted and decrypted, fragmented into packets and reassembled, translated from human-readable names to machine-readable numbers and back to human-readable content.

And it took less than a second.

Every URL you type triggers this cascade. Every page you load is a small miracle of coordination—strangers trusting strangers, packets finding paths, translations happening at the speed of light.

You press Enter. The machine does the rest.

Frequently Asked Questions About How Websites Load

Was this page helpful?

😔
🤨
😃
How Your Computer Finds and Talks to a Website • Library • Connected