Free course
Browser Internals Course
Learn how a browser loads resources, builds and paints a page, runs JavaScript, isolates sites, stores data, and exposes performance problems.
Prerequisites: HTML, CSS, JavaScript and HTTP
~~~
Your progress
of lessons completed.
Course completed.
What you'll learn
Trace a page from URL to pixels and use browser DevTools to explain and fix loading, rendering, memory, and responsiveness problems.
Take this course offline
Subscribe to my newsletter to get every free book and course in PDF and EPUB format.
Get the downloadsCourse contents
Networking and resource loading
DNS, connections, requests, parsing, priorities, and reuse.
- ✓ From a URL to a page
- ✓ DNS, Domain Name System
- ✓ The HTTPS protocol
- ✓ How HTTP requests work
- ✓ How the browser discovers resources
- ✓ Efficiently load JavaScript with defer and async
- ✓ How module scripts load
- ✓ Preload important resources carefully
- ✓ The HTTP/2 protocol
- ✓ Reuse connections and cached responses
- ✓ Check your understanding: networking and loading
The rendering pipeline
DOM, CSSOM, style, layout, paint, and compositing.
The JavaScript engine
Parsing, optimization, the stack, event loop, and memory.
- ✓ The V8 JavaScript Engine
- ✓ Parse, compile, and run JavaScript
- ✓ Optimization and deoptimization
- ✓ The call stack
- ✓ The JavaScript Event Loop
- ✓ Tasks and microtasks
- ✓ Long tasks block the page
- ✓ Garbage collection
- ✓ How browser memory leaks happen
- ✓ Web Workers
- ✓ Check your understanding: the JavaScript engine
Storage and browser security
Origins, cookies, local data, isolation, and sandboxing.
- ✓ What is an origin
- ✓ Learn how HTTP Cookies work
- ✓ The Web Storage API: local storage and session storage
- ✓ Dive into IndexedDB
- ✓ Choose the right browser storage
- ✓ The same-origin policy
- ✓ CORS, Cross-Origin Resource Sharing
- ✓ Site isolation and renderer sandboxing
- ✓ Private browsing storage
- ✓ Check your understanding: storage and security
Performance and DevTools
Web Vitals, long tasks, layout work, profiling, and leaks.
- ✓ Measure before optimizing
- ✓ Core Web Vitals
- ✓ Investigate a slow LCP
- ✓ Investigate a slow interaction
- ✓ Prevent unexpected layout shifts
- ✓ Avoid layout thrashing
- ✓ Use requestAnimationFrame for visual updates
- ✓ Debounce and throttle repeated input
- ✓ Overview of the Browser DevTools
- ✓ Read a performance recording
- ✓ Find a memory leak
- ✓ Profile and fix a page
- ✓ Check your understanding: performance and DevTools