← Writing

How a Browser Works: A Beginner-Friendly Guide to Browser Internals

Follow what happens inside a browser, from networking and HTML parsing to rendering a page on screen.

Shubham Prasad5 min readview raw ↗
#engineering#learning
On this page 17

Picture this: You open your laptop, click the colorful Chrome or Firefox icon, type youtube.com into the bar, and press Enter.

A universe of videos appears almost instantly.

It feels almost magical — but inside that tiny moment, the browser performs a full chain of complex steps. For most beginners, the browser is a black box: you write some code, and somehow a website shows up. But once you peek inside, everything on the web becomes a lot less mysterious.

Understanding browser internals helps you write faster, cleaner code and debug tricky layout problems with confidence.

Illustration accompanying: How a Browser Works: A Beginner-Friendly Guide to Browser Internals

What a Browser Really Is

At a high level, a browser is simply a translator and an artist.

  • It fetches files from the internet (HTML, CSS, JS, images).
  • It interprets them.
  • And it draws a beautiful, interactive page on your screen.

Chrome, Firefox, Safari, Edge — they all do this same job, just with slightly different internal engines.


The Main Parts of a Browser

A browser is not one program. It's a team of specialized components working together.

1. User Interface (UI)

Everything you see and interact with: the address bar, tabs, bookmarks, refresh button, etc.

2. Networking Layer

This handles all communication with the internet — making HTTP/HTTPS requests to fetch HTML, CSS, JS, images, and more.

3. Browser Engine

Acts as the coordinator between the UI and the Rendering Engine.

4. Rendering Engine

The star of the show. It transforms raw HTML and CSS into something visual on your screen. Examples: Blink (Chrome), Gecko (Firefox), WebKit (Safari).

5. JavaScript Engine

Executes JavaScript and powers interactivity. Examples: V8 (Chrome), SpiderMonkey (Firefox), JavaScriptCore (Safari).

Illustration accompanying: 5. JavaScript Engine

The Journey: What Happens After You Press Enter?

Let’s walk through the life of a webpage from URL → Pixels.


Step 1: Networking — Fetching the HTML

When you type a URL and press Enter, the networking layer:

  1. Resolves the domain via DNS.
  2. Establishes a connection with the server.
  3. Sends an HTTP request.
  4. Receives the response — usually starting with the main HTML file.

Once that HTML arrives, the browser starts reading it.


A Quick Detour: What Is Parsing?

Before going further, it's important to understand parsing.

Take a simple math expression:

bash
2 + 2

To humans, this is obvious. To a computer, it’s just raw text until it “parses” it into:

  • Number: 2
  • Operator: +
  • Number: 2

Only then can it calculate the result.

Browsers do the same thing with HTML, CSS, and JavaScript — converting raw text into structured pieces that they can work with.


Step 2: HTML Parsing → Building the DOM

The HTML file is just plain text. The HTML parser reads it and converts it into the DOM Tree (Document Object Model).

Example:

html
<html>
  <body>
    <h1>Hello World</h1>
    <p>This is a cool paragraph.</p>
  </body>
</html>

The browser converts these tags into a family-tree-like structure:

  • <html> is the root.
  • <body> is inside it.
  • <h1> and <p> are inside the body.

The DOM is the browser’s internal representation of the page. Any JavaScript you write interacts with the DOM — not the original HTML file.

Illustration accompanying: Step 2: HTML Parsing → Building the DOM

Step 3: CSS Parsing → Building the CSSOM

While parsing the HTML, the browser discovers <link> tags pointing to CSS files.

It fetches those files and parses the raw CSS text to build another structure called the CSSOM (CSS Object Model).

CSSOM answers the question:

“Which styles apply to which elements in the DOM?”

For example:

bash
h1 { font-size: 20px; color: red; }
p  { font-weight: bold; }

The browser breaks these rules into another tree-like structure.


Step 4: DOM + CSSOM → Creating the Render Tree

Now the browser has:

  • The DOM → what content should be shown
  • The CSSOM → how that content should look

It combines them into the Render Tree.

Important: Hidden elements (like those with display: none) remain in the DOM but are not included in the Render Tree, because they won’t be displayed.

The Render Tree contains only the visible elements and their final styles.


Step 5: Layout (Reflow) — Calculating Positions

The Render Tree knows what should appear and how it should look, but not where.

Layout (also called Reflow) calculates:

  • exact sizes
  • widths
  • heights
  • positions
  • spacing
  • alignment

Think of moving into a new room: the Render Tree is your furniture list, layout is figuring out where everything goes.

If you resize your browser window, this step may run again.

Illustration accompanying: Step 5: Layout (Reflow) — Calculating Positions

Step 6: Painting — Turning Everything Into Pixels

Once layout is done, the browser finally knows:

  • what to draw
  • how it looks
  • where it goes

Painting is the process where the browser fills in pixels:

  • text
  • colors
  • background images
  • shadows
  • shapes
  • borders

Finally, the browser’s compositor layers everything into the final image you see.

This all happens in a fraction of a second.


The Golden Flow (Remember This)

Here’s the entire process in one clean sequence:

HTML → DOM CSS → CSSOM DOM + CSSOM → Render Tree Render Tree → Layout Layout → Paint Paint → Screen

That’s how the web comes alive.


Why This Matters for Beginners

Knowing how a browser works helps you:

  • understand performance issues
  • avoid expensive layout thrashing
  • write CSS that behaves predictably
  • debug DOM and style-related problems
  • think like the browser, not against it

You don’t have to memorize every term. Just remember the story:

A browser fetches → parses → builds trees → positions everything → paints the final result.

That’s the foundation of every modern webpage.

Comments 00

Got something to say? Leave a comment.

Join the discussion ↗

No comments yet. Yours can be the first.

Where would you like to go?

Loading published content…

↑ ↓ navigate · ↵ open