Best on a larger screen — the animation and controls have more room to breathe.
Inputs

URL → Rendered Page

URL to rendered page is the browser pipeline that turns an address-bar string into pixels: parse the URL, decide whether cache can answer, resolve a host, open TCP and TLS, send HTTP, receive bytes, build DOM and CSSOM trees, lay out boxes, paint, and composite the final viewport.

A URL is a boarding pass, not the trip. It names where you want to go and which door to use; the browser still has to check its pockets, find the building, prove it is talking to the right one, ask for the document, and then typeset the thing. The page appears at the end because several small machines handed each other the right artifact.

How URL to rendered page works

The load starts with parsing. From https://vizlearn.app/capstones/projects/url-to-page, the browser extracts a scheme (https), a host (vizlearn.app), and a path (/capstones/projects/url-to-page). The scheme says the request should use HTTPS. The host is the name DNS must resolve. The path first keys the cache lookup; the server sees it only once HTTP exists, because sending a path before you have an address is like writing an apartment number before you know the city.

Next comes the cache decision. A warm HTTP cache can provide the document and stylesheet locally. A cold cache miss has to continue through the network. This lesson shows both because the contrast matters: cache changes the source of bytes, not the renderer's job. Cached HTML still has to become a DOM, styled boxes, and pixels.

On a cold HTTPS load, DNS maps the host to an IP address. TCP then opens a reliable byte stream to that address with SYN, SYN-ACK, and ACK. TLS rides on top of that stream, authenticates the host with a certificate, and derives keys. Only after that does HTTP send GET /capstones/projects/url-to-page and receive HTML.

The renderer takes over after bytes arrive. HTML becomes a DOM tree. CSS becomes a CSSOM tree. The browser combines the DOM nodes that generate boxes (not display: none) with their styles into a render tree, computes layout boxes, paints those boxes, then composites the painted layers into the viewport.

That artifact chain is the lesson: URL parts -> cache verdict -> IP -> socket -> TLS channel -> request -> HTML/CSS -> DOM/CSSOM -> render tree -> boxes -> pixels.

URL to rendered page Step by Step

The default run is a cold load of https://vizlearn.app/capstones/projects/url-to-page, so every major layer has to do work.

  1. The browser begins with the raw URL in the address bar. Nothing has crossed the network yet.
  2. It parses the URL into https, vizlearn.app, and /capstones/projects/url-to-page. The host becomes the value DNS must answer.
  3. The browser checks DNS, TLS-session, and HTTP caches. All miss in the default run, so cached bytes cannot answer.
  4. It sends a DNS question for vizlearn.app, then receives 203.0.113.10. That IP artifact unlocks the transport layer.
  5. TCP opens the socket: SYN goes to the origin, SYN-ACK comes back, ACK confirms. Now there is a reliable byte stream.
  6. TLS starts on that stream. The browser sends ClientHello, the server returns certificate and key material, and both sides derive session keys. HTTP is still waiting.
  7. The browser sends GET /capstones/projects/url-to-page through the secure channel.
  8. The server returns the HTML response. The renderer can now start reading the document, but it is not a page yet.
  9. The HTML parser discovers a stylesheet. The browser fetches CSS on the same secure channel and stores the successful HTML/CSS response in cache.
  10. The renderer parses HTML into the DOM and CSS into the CSSOM.
  11. DOM and CSSOM combine into a render tree. display: none nodes stay in the DOM but produce no render boxes; visibility: hidden nodes still get boxes.
  12. Layout computes rectangles: positions and sizes. Paint fills those rectangles with colors, borders, and text. Composite assembles the painted layers into the final viewport.

In the visual run, the bottom ribbon is the ledger. Each chip is a typed artifact. When one chip lights up, it is the thing the next layer consumes. Old network messages fade because they are history; the current artifact is the only thing allowed to shout.

Why URL to rendered page takes time

This toy trace has a fixed number of stages, but real page load time depends on round trips, resource count, parse work, style complexity, layout size, paint area, and scheduling inside the browser. The network and renderer are different bottlenecks. A perfect cache can remove DNS/TCP/TLS/HTTP for the main document, but it does not remove DOM construction, CSS parsing, layout, paint, or composite.

The rough cost model looks like this:

StageWhat can dominate
DNScache miss, resolver latency, failed lookup
TCP/TLSround trips, packet loss, certificate work, protocol choice
HTTPserver latency, response size, extra resources
Parse/styleDOM size, CSS rule count, selector matching
Layout/paintnumber of boxes, fonts, images, invalidated regions
Compositelayers, transforms, scrolling surfaces, GPU upload

So "my page is slow" is not one diagnosis. It might be waiting for an IP address, waiting for the server, downloading bytes, blocking on CSS, relaying out a large document, or painting too much. The first grown-up move is to name which artifact is late.

Edge Cases

  • Warm cache: HTML and CSS come from the browser cache, so DNS/TCP/TLS/HTTP are skipped for this simplified main-document load. Rendering still runs.
  • DNS failure: no IP address appears, so the origin server is never contacted. The browser renders a local error page, not a server response.
  • Connection refused: DNS succeeds and an IP comes back, but the origin rejects the TCP handshake, so no socket forms. TLS, HTTP, and the real page never run. It is the same kind of break as a DNS failure, one link further down the chain, which is why "the server is down" and "the name does not resolve" are different diagnoses.
  • Stale cache: a real browser may revalidate cached bytes with conditional requests. This lesson treats warm cache as a clean hit to keep the contrast readable.
  • Redirects: a real 301 or 302 can replace the URL and restart part of the chain. The default trace has no redirect.
  • Missing CSS: a browser can render unstyled HTML, then repaint after CSS arrives. This lesson uses a single stylesheet so the dependency is visible.

Common Mistakes

  • Treating the URL as the HTTP request. The URL is parsed first; the HTTP GET is built much later, after DNS, TCP, and TLS.
  • Saying "the server failed" on a DNS failure. If DNS cannot produce an address, the browser never reaches the server.
  • Thinking cache skips rendering. Cache can skip network bytes; it cannot skip DOM, CSSOM, layout, paint, or composite.
  • Mixing TCP and TLS. TCP gives a reliable stream. TLS gives authentication and encryption over that stream.
  • Calling the DOM the page. The DOM is structure. Pixels arrive only after style, render-tree construction, layout, paint, and composite.

A Note on Simplification

This is an explainer, not a browser implementation. It shows HTTPS over TCP and a compact render pipeline. The visual trace shows the TCP three-way handshake as SYN, SYN-ACK, and ACK, then keeps TLS as one grouped beat and points to the dedicated TLS lesson for the certificate exchange. It leaves out HTTP/3 and QUIC, redirects, service workers, streaming HTML parsing, the preload scanner, JavaScript execution, font loading, image decoding, real cache validation, and GPU details. Real browsers overlap many of these jobs; the lesson separates them so the dependency chain is legible.