1.15
Capstone: What Happens When You Open google.com
Everything in this module working together, from pressing Enter to pixels on the screen.
36 min Reading + animations
Tip: tap or hover any dotted-underlined term to see what it means.
By the end of this lesson you will be able to
- Walk through everything that happens between pressing Enter on google.com and seeing the page, naming every actor: browser, operating system, router, ISP, resolver, Google’s edge and backends.
- Explain what the address bar decides before any packet leaves (search vs address, HSTS, the parts of a URL).
- Follow one packet out through NAT and the internet and back, and say which header fields change at each hop.
- Describe Google’s edge: nearby front ends, TLS termination at the GFE, and routing to backend services.
- Explain the critical rendering path (DOM, CSSOM, render-blocking CSS, blocking vs async/defer scripts, layout, paint, compositing) and why repeat visits are faster (connection reuse, HTTP cache, 304).
- Read a network waterfall with rough millisecond numbers and point to where time is lost and what fixes it.
- Explain why the network must be treated as unreliable (loss, variable delay, partial failure, partitions) and which design tools answer each problem.
#The journey in one picture
This is the capstone of the networking module. Every earlier lesson zoomed in on one piece; here we put them together in order, for the most common action on the internet: typing google.com and pressing Enter.
The whole journey in one picture
Client → DNS → IP address → connection → packet routing/NAT → Google server → HTTP response → browser rendering.
1. URL parsing. You type google.com and press Enter. The browser decides it is an address, not a search, and that it will use HTTPS.
The short version, worth memorising:
Client → DNS → IP address → connection → packet routing / NAT → Google server → HTTP response → browser rendering
Each piece has its own lesson if you want to go deeper: client–server, layers and encapsulation, IP and MAC addressing, routing and NAT, DNS, TCP, UDP and TLS, network devices, firewalls, proxies and VPNs and diagnostics. This lesson covers what happens between those pieces, and the parts none of them cover: the address bar, Google’s edge, rendering, caching and the timeline.
#The cast of acronyms
| Term | Full form | Role in this journey |
|---|---|---|
| DNS | Domain Name System | Turns www.google.com into an IP address |
| TLD | Top-Level Domain | The last part of the name (.com, .org); its servers point to Google’s name servers |
| DoH / DoT | DNS over HTTPS / DNS over TLS | Encrypted DNS lookups |
| IP | Internet Protocol | Logical addressing; carries packets end to end |
| MAC | Media Access Control | Hardware address used on each local link (laptop → router) |
| TCP | Transmission Control Protocol | Reliable, ordered delivery (under HTTP/1.1 and HTTP/2) |
| UDP | User Datagram Protocol | Fast, connectionless; the base of QUIC |
| TLS | Transport Layer Security | Encrypts the traffic and proves the server is really Google |
| QUIC | (originally “Quick UDP Internet Connections”) | Modern transport over UDP with TLS built in; carries HTTP/3 |
| NAT / NAPT | Network Address (and Port) Translation | Maps your private IP and port to the router’s public IP and port |
| ISP | Internet Service Provider | Connects your home to the rest of the internet |
| BGP | Border Gateway Protocol | How networks (autonomous systems) tell each other which addresses they can reach |
| CDN | Content Delivery Network | Caches content on servers close to users |
| GFE | Google Front End | Google’s fleet of edge reverse proxies that terminate TLS and route requests |
| HSTS | HTTP Strict Transport Security | Forces the browser to use HTTPS for a site |
| DOM | Document Object Model | The page’s HTML as a tree of objects |
| CSSOM | CSS Object Model | The page’s style rules as a tree of objects |
#Watch it end to end
Here is the whole journey, actor by actor. Play the first visit, then compare the repeat visit, HTTP/3 and the two failures. The rest of the lesson explains each step in detail.
google.com, end to end
Every actor that touches your request. Compare a first visit with a repeat visit, HTTP/3, and two failures.
Scenario
Nothing cached, no open connection: every step happens.
The address bar has settled on https://www.google.com/ (google.com redirects to www.google.com; that detour is shown in the edge animation below). First the browser needs an IP.
#Step 1: URL parsing in the address bar
When you type into Chrome’s address bar (the “omnibox”) and press Enter, the browser first decides: is this a search query or a website address?
- Has a scheme (
https://…) or looks like a host name (no spaces, ends in a real top-level domain such as .com or .bd, or is an IP address orlocalhost): it is an address. - Has spaces or no valid host: it is a search, sent to your default search engine as
https://www.google.com/search?q=…. - A single word like
printer: treated as a search, but the browser quietly checks DNS and may offer “Did you mean http://printer/?”.
Then it picks the scheme. You typed no https://, but the browser will still use HTTPS:
- HSTS (HTTP Strict Transport Security) is a site’s instruction “only ever contact me over HTTPS”. Browsers remember it after the first visit, and ship a built-in preload list of sites that are HTTPS-only from the very first visit; many Google domains are on it. For those, even
http://google.comis rewritten tohttps://inside the browser (an internal redirect), so no plain-text request ever leaves your computer. - Even without HSTS, modern browsers try HTTPS first for typed addresses.
Finally it splits the URL (Uniform Resource Locator) into parts:
https://www.google.com:443/search?q=dns#results
└─┬─┘ └──────┬─────┘└┬┘└──┬──┘└──┬──┘└──┬───┘
scheme host port path query fragment (never sent to the server)
The port is usually not typed: 443 is the default for https, 80 for http.
Step 1: what the address bar decides before any packet is sent
Scenario
You type google.com and press Enter. While you typed, the browser was already suggesting completions and may even have started a DNS lookup.
The browser is the program that sends requests and displays responses; the OS (operating system, e.g. Windows) manages the network hardware and system resources the browser relies on. Before any of this, the browser may already have pre-resolved google.com and even opened a connection while you were still typing, because it predicted you would press Enter.
#Step 2: DNS lookup
Computers do not route by name; they need the destination’s IP address. The lookup checks, in order, the browser’s DNS cache, the OS cache and hosts file, then asks the recursive DNS resolver (your ISP’s, or a public one like 8.8.8.8 or 1.1.1.1). If the resolver has nothing cached, it walks the tree:
- Root DNS server: “ask the .com TLD servers”.
- TLD DNS server (.com): “Google’s authoritative name servers are ns1–ns4.google.com”.
- Authoritative DNS server (Google’s): “www.google.com is this address, cache it for 300 seconds”.
- Recursive resolver: caches the answer and returns the IP to your computer.
Example: google.com → DNS resolution → IP address. With a valid answer in any cache, the root, TLD and authoritative servers are not contacted at all, which is the normal case for a name as popular as Google. If DoH is turned on, the browser sends the DNS query inside HTTPS so the network cannot read it.
Two details that matter for this journey:
- The answer depends on where you ask from. Google’s name servers look at the resolver’s location (or a client-subnet hint) and return the address of a front end near you. A user in Dhaka and one in London get different IPs for the same name.
- The TTL is short (300 seconds) so Google can move traffic between locations quickly.
Full details, record types, caching layers and failures are in the DNS lesson.
#Step 3: Connection establishment
With the IP in hand, the browser creates a transport connection, or reuses one that is already open.
For HTTPS over TCP:
- SYN (synchronize): the client starts the connection.
- SYN-ACK: the server acknowledges and answers.
- ACK (acknowledgment): the client confirms.
That is the TCP three-way handshake: one round trip. Then the TLS handshake sets up encryption. With TLS 1.3 it takes one more round trip: the client sends its supported ciphers, a key share, the server name (SNI) and the protocols it speaks (ALPN, “h2” for HTTP/2); the server answers with its key share and Google’s certificate, which the browser checks (right name, valid dates, signed by a trusted authority). TCP gives reliable, ordered delivery; TLS encrypts and proves the server’s identity.
The exception: HTTP/3 does not use TCP. It runs on QUIC over UDP, which combines the transport and TLS handshakes into one round trip (and zero on some repeat visits). So a TCP three-way handshake is not mandatory for every HTTPS connection. The browser learns that Google supports HTTP/3 from an alt-svc header in an earlier response (or from a DNS HTTPS record), and falls back to TCP if UDP is blocked.
Connection reuse. Handshakes cost round trips, so browsers keep connections open after a page loads and reuse them for the next request to the same server, and one HTTP/2 or HTTP/3 connection carries many requests at once. A page can also ask for early setup with <link rel="preconnect"> (DNS + TCP + TLS in advance) or <link rel="dns-prefetch"> (DNS only) for other hosts it will need soon. The TCP, UDP and TLS lesson shows each handshake packet by packet.
#Step 4: Sending the HTTP request
Over the secure connection, the browser asks for the page:
GET / HTTP/2
Host: www.google.com
Accept: text/html
Accept-Language: bn-BD,en;q=0.9
Accept-Encoding: gzip, br
Cookie: …
This is a simplified, readable version. Real HTTP/2 does not send headers as text like this: they are compressed into binary frames (and in HTTP/2 the host travels as a pseudo-header called :authority).
- HTTP (Hypertext Transfer Protocol) defines how web requests and responses look; HTTPS is HTTP inside TLS.
- GET is the method for fetching a resource; the path
/means the home page. - Headers carry extra information: which languages and compression formats you accept, cookies that identify your signed-in session, and so on.
#The request inside its envelopes
Before it leaves your computer, the request is wrapped layer by layer: HTTP data inside a TLS record, inside a TCP segment (ports), inside an IP packet (addresses), inside a Wi-Fi or Ethernet frame (MAC addresses for this one link). This is encapsulation; each router opens only the outer envelopes, and only Google’s edge opens them all. See layers and encapsulation for the models behind it.
Packet encapsulation: the request inside its envelopes
Each layer adds the header it needs. Routers only open the outer envelopes; only Google’s edge opens all of them.
Scenario
The browser creates the HTTP request.
#Step 5: Router, ISP and internet routing
The packet now has to cross several networks to reach Google’s IP.
- Default gateway: Google’s IP is not on your local network, so your computer sends the frame to the default gateway, your home router (its MAC address found with ARP).
- NAT: your laptop has a private address (192.168.1.10) that is meaningless on the internet. The router replaces the source with its own public IP and a port (203.0.113.25:62001) and records the mapping in its NAT table so the reply can be sent back to you. If your ISP uses carrier-grade NAT (CGNAT), this happens a second time inside the ISP.
- Routers: each router looks at the destination IP, checks its routing table and forwards the packet to the next hop. No router knows the whole end-to-end path. Between networks, BGP decides which neighbour network to hand the packet to.
- ISP: your Internet Service Provider carries the packet to the wider internet. Large ISPs connect to Google directly at exchange points (peering), so the path is often only a handful of hops.
- The return path can be different from the request path, because each network makes its own forwarding choices.
Watch which header fields change at each hop: the MAC addresses change on every link, TTL drops by one at each router, the source IP and port change once at NAT, and the destination IP never changes.
The packet’s road: NAT, hops and Google’s edge
Watch the header fields under the map. Highlighted fields are the ones rewritten at that hop.
Scenario
Leaving the laptop
Dst MAC
router (LAN side)
Src IP:port
192.168.1.10:53000
Dst IP:port
198.51.100.20:443
TTL
64
Your laptop sends the SYN. The destination IP is Google’s, but Google is not on your local network, so the frame is addressed to the router’s MAC (found with ARP).
More on routing tables, default gateways and NAT in routing and NAT.
Self-checkQuestion
Your laptop (192.168.1.10) sends a packet to Google through your home router. Which field does Google see as the source address?
#Step 6: Google’s side and the HTTP response
The packets arrive at a Google edge location (a point of presence, or PoP) close to you. Google’s side is layered:
- Getting you to a nearby edge. Google’s DNS answers with a nearby front-end address, and many of Google’s addresses are anycast: the same IP is announced via BGP from many locations, so internet routing delivers you to the closest one. If one location fails, its route is withdrawn and traffic flows to the next.
- The GFE (Google Front End) is Google’s fleet of reverse proxies. It terminates TLS close to you (short round trips for the handshake), protects against floods and abuse, and decides which backend service and data centre should handle the request.
- Backends. The GFE forwards the request over Google’s private backbone (not the public internet) using already-open connections. The search frontend calls other services in parallel (your account, today’s doodle, and so on) and builds the HTML.
- The response goes back through the GFE, which compresses and encrypts it and streams it to you.
Inside Google: edge, front end and backends
Scenario
The encrypted request arrives at the edge, a Google point of presence near you.
A simplified response looks like this:
HTTP/2 200
content-type: text/html; charset=UTF-8
content-encoding: br
cache-control: private, max-age=0
alt-svc: h3=":443"
- HTTP response: the server’s answer: a status code, headers and a body.
- Response body: the HTML (or other content).
Status codes you will meet on this journey:
| Code | Meaning | Where it shows up |
|---|---|---|
| 200 OK | Success | The HTML, CSS, images |
| 301 / 308 | Moved permanently (cached by the browser) | google.com → www.google.com |
| 302 / 307 | Temporary redirect | Sign-in flows, regional redirects |
| 304 Not Modified | Your cached copy is still valid; no body | Repeat visits, revalidation |
| 404 Not Found | No such resource | A mistyped path |
| 429 Too Many Requests | Rate limited | Automated traffic |
| 500 / 502 / 503 | Server-side failure, bad gateway, unavailable | Backend or proxy problems |
Receiving the HTML is not the end: the browser usually has to send more requests for CSS, JavaScript, images and fonts.
#More requests: CSS, JavaScript, images and fonts
As the HTML streams in, the parser (and a preload scanner that reads ahead) discovers the other files the page needs. They are fetched in parallel:
- On HTTP/2 or HTTP/3, all requests to the same host share one connection as separate streams, with priorities (CSS first, because it blocks rendering). No new handshakes.
- On old HTTP/1.1, one connection carries one request at a time, so browsers open up to 6 connections per host, each with its own handshake.
- A file on another origin (a different host, like a font server) needs its own DNS lookup and handshakes, unless a
preconnecthint started them early. - Many files are served straight from the edge’s cache, and come with long cache lifetimes so the next visit needs no network at all.
More requests: CSS, JS, images and fonts
One page is many requests. How they share connections decides how fast the page fills in.
Scenario
While parsing the HTML, the browser (helped by a “preload scanner” that reads ahead) discovers a stylesheet, a script and the logo.
#Step 7: Browser rendering
The browser now turns HTML, CSS and JavaScript into pixels. This sequence is called the critical rendering path:
- HTML → DOM. Bytes are decoded into characters, tokens and then nodes of the DOM (Document Object Model), a tree of every element that JavaScript can read and change. This builds the page’s structure.
- CSS → CSSOM. Stylesheets are parsed into the CSSOM (CSS Object Model): the rules for style, colour, size and layout. CSS is render-blocking: the browser will not paint until the CSSOM is ready, to avoid flashing unstyled content.
- JavaScript execution. Handles interaction, events and dynamic content. A plain
<script src>is parser-blocking: parsing stops until it is downloaded and run.deferscripts download in parallel and run after parsing (beforeDOMContentLoaded);asyncscripts run as soon as they arrive, in any order. - Render tree. DOM + CSSOM are combined into the tree of visible elements with their computed styles.
- Layout (reflow). The exact size and position of every box is calculated for the current screen width.
- Paint. Boxes are turned into drawing commands (text, colours, borders, images), often on several layers.
- Composite → display. Layers are rasterised into pixels and the compositor, mostly on the GPU, stacks them on screen.
These stages do not run strictly one after another. The browser parses HTML while it is still downloading, fetches CSS and images in parallel, and can paint the top of the page before the bottom has arrived.
Step 7: from HTML bytes to pixels
The critical rendering path: what the browser must finish before it can draw anything, and what slows it down.
Scenario
Bytes are decoded into characters, then tokens (<html>, <head>, <link>…), as they arrive. The parser does not wait for the whole file.
After the page has loaded, changes are cheapest when they touch fewer stages: changing geometry (width, position in the flow) re-runs layout, paint and composite; changing a colour re-runs paint and composite; changing transform or opacity on its own layer only re-composites. That is why smooth animations use transform and opacity.
Self-checkQuestion
A page’s HTML arrives in 200 ms, but the screen stays white for two seconds. The network panel shows a large stylesheet from a slow third-party server finishing at 2.1 s. Why?
#Repeat visits: caching
Open Google again a minute later and almost everything is skipped:
- DNS: the IP is still in the browser and OS caches (TTL 300 s).
- Connection: the HTTP/2 connection may still be open; if not, TLS session resumption (or QUIC 0-RTT) makes the new handshake cheaper.
- HTTP cache: files stored with
Cache-Control: max-age=…are reused from memory or disk without any request while fresh. Big sites put a hash of the content in the file name (app.3f9a1c.js) and cache it for a year: a new version simply gets a new name. - Revalidation: a stale file with an ETag (version tag) is checked with a conditional request (
If-None-Match). If unchanged, the server answers 304 Not Modified with no body. - Personal pages are marked
private(no shared caches such as proxies or CDNs) and oftenno-cacheormax-age=0, so the HTML is always fetched fresh. Google’s home page is one of these.
Repeat visits: the HTTP cache and 304 Not Modified
Scenario
The page needs its script. The file name contains a hash of its contents, so a new version always gets a new name.
#The timeline: where the milliseconds go
Put it all on one time axis and you get the waterfall you see in a browser’s developer tools. The numbers below are rough, for a good broadband connection with about 30 ms round trips to Google’s nearby edge:
| Phase | First visit (approx.) | What decides it |
|---|---|---|
| DNS | 0–40 ms | Cache hits; resolver distance |
| TCP handshake | 40–70 ms | One round trip |
| TLS 1.3 handshake | 70–100 ms | One round trip (QUIC merges it with the previous row) |
| Waiting → first byte (TTFB) | 100–230 ms | One round trip + server processing |
| HTML download | 230–260 ms | Size (compressed) and bandwidth |
| First paint | ~320 ms | Render-blocking CSS |
DOMContentLoaded | ~360 ms | HTML parsed, deferred scripts run |
load | ~430 ms | All images, fonts and other resources done |
The timeline: where the milliseconds go
A simplified network waterfall for opening the page (rough numbers for a good broadband connection, about 30 ms round trip to Google’s edge).
Scenario
Document /
www.google.com
style.css
same connection
app.js (defer)
same connection
logo image
same connection
web font
fonts.gstatic.com
0–40 ms: DNS. Cold caches mean a trip to the resolver (it usually has Google cached; a full walk from the root could take 100 ms or more).
What the scenarios show:
- Round trips dominate, not bandwidth. On a 300 ms mobile connection the same page takes about 3 seconds, almost all of it waiting for round trips. That is why Google puts edges near users, prefers HTTP/3, uses preconnect and inlines critical CSS.
- Repeat visits are dramatically faster thanks to DNS caching, connection reuse and the HTTP cache.
- Performance teams track TTFB (time to first byte), the first paint and LCP (Largest Contentful Paint: when the main content becomes visible).
#When something goes wrong
The steps also tell you where to look when a page will not load. Each error points at one stage:
| What you see | Stage | Usual cause |
|---|---|---|
ERR_NAME_NOT_RESOLVED | DNS | Typo (NXDOMAIN), DNS server down, no internet |
| Page loads by IP but not by name | DNS | Resolver problem, wrong hosts-file entry |
ERR_CONNECTION_TIMED_OUT | Connection / routing | Firewall dropping packets, route down |
ERR_CONNECTION_REFUSED | Connection | Nothing listening on that port (connection reset by the server) |
Certificate warning (ERR_CERT_…) | TLS | Wrong clock, Wi-Fi login page intercepting, expired certificate |
| 4xx / 5xx page | HTTP / server | Bad URL or request; backend or proxy failure |
| Long white screen | Rendering | Render-blocking CSS or scripts, slow third-party files |
The diagnostics lesson shows the tools (ping, traceroute, nslookup, curl) to check each stage.
#The network is unreliable
Everything above is the happy path. Every step crossed links, routers and machines that can fail, and at the scale of Google, or of any busy system, something is always failing somewhere. Systems that stay up treat failure as normal input, not as a surprise.
#What actually goes wrong
- Packet loss. Queues overflow, Wi-Fi frames collide, cables are cut. TCP and QUIC hide loss by resending, but every loss costs at least one more round trip, and a lost SYN costs a full second. To a user, loss looks like slowness, especially in the slowest requests (p99), not like an error.
- Variable delay. The same request takes 30 ms or 300 ms depending on queues along the path. From the outside, “slow” and “dead” look identical until you decide to stop waiting.
- Partial failure. On one computer, a program either works or crashes. Across a network, some parts work while others fail, and when no reply comes you cannot know why: the request was lost, the server is slow, the server crashed before doing the work, or it did the work and the reply was lost.
- Partitions. A cut link can split machines into groups that are all running but cannot reach each other. Each side may believe the other is dead and carry on alone.
#Designing for it
| What the network does | What the design does | Where it is taught |
|---|---|---|
| Silence can mean anything | A timeout on every network call, set from measured latency (a little above p99), never “wait forever” | Chapter 28 (fault tolerance) |
| Loss is often brief | Retries with exponential backoff, random jitter and a limit, so a brief loss is survived and a crowd of clients does not hammer a sick server | Chapter 28 |
| A retry can repeat work that already happened | Idempotent operations; an idempotency key for payments and other actions that must happen once | Chapter 28; HTTP method semantics in chapter 2 |
| A dependency is slow or unreachable | Circuit breakers, fallbacks and graceful degradation: answer with less rather than hang | Chapter 28 |
| The network splits | Decide what each side may do: refuse some requests to stay consistent, or keep answering and stay available (CAP, PACELC) | Chapter 18 (distributed trade-offs) |
| Loss and delay differ per path | Measure percentiles from where users are, not averages from one office | Lesson 1.14 |
The Google journey you just followed is built exactly this way: DNS answers come from caches and several name servers, your operating system has a second resolver, TCP resends lost segments, the browser falls back from QUIC to TCP when UDP is blocked, anycast withdraws a failed edge location and sends users to the next one, and the GFE retries a request on a different backend.
When a step fails: loss, timeouts and retries
Every arrow in the journey can be lost or delayed. These are the everyday failures and how well-built clients and servers survive them.
Scenario
Loss shows up as delay, not as an error.
The very first packet of the connection is lost: a full queue on a busy router, or interference on Wi-Fi. Nobody tells the browser. Lost packets simply vanish.
When you reach chapter 18 (CAP, PACELC and consistency) and chapter 28 (timeouts, retries, idempotency, circuit breakers and load shedding), remember where it all starts: a packet that may or may not arrive.
#The whole process at a glance
- URL parsing: the browser understands the address.
- DNS resolution: the domain’s IP is found if needed.
- Connection: TCP + TLS, or QUIC + UDP.
- Packet encapsulation: the HTTP data is carried inside transport, IP and link headers.
- Routing + NAT: routers forward the packet; address translation happens where needed.
- Google server: the front end and the relevant backends process the request.
- HTTP response: the server’s answer travels back to the client.
- Browser rendering: the page is built from HTML, CSS and JavaScript.
The most important differences, for exams and real work:
- DNS tells you which IP address to use for a domain.
- A router picks the next hop based on the destination IP.
- NAT changes the IP address and port mapping where needed.
- TCP/UDP carry data at the transport layer; TCP gives reliable delivery, UDP by itself does not.
- TLS secures HTTPS communication.
- HTTP defines the rules for web requests and responses.
- Google’s servers process the request and send a response.
- The browser builds the web page from the response and shows it on screen.
The formula to remember:
Client → DNS → IP address → connection → packet routing/NAT → Google server → HTTP response → browser rendering
#Try it yourself
# Time each phase of a real request (Windows: use curl.exe in PowerShell)
curl -o /dev/null -s -w "dns %{time_namelookup}s\ntcp %{time_connect}s\ntls %{time_appconnect}s\nttfb %{time_starttransfer}s\ntotal %{time_total}s\n" https://www.google.com/
# See the redirect, the status code and the headers
curl -sI https://google.com | head -n 5
curl -sI https://www.google.com | grep -iE "^HTTP|cache-control|alt-svc|content-type"
# Which IP does Google give you? (compare with a friend in another city)
nslookup www.google.com
# The hops between you and Google's edge
tracert www.google.com # Windows
traceroute www.google.com # macOS / Linux
# The certificate the GFE presents
openssl s_client -connect www.google.com:443 -servername www.google.com </dev/null | head -n 20
In Chrome, open the developer tools (F12), go to the Network tab, tick “Disable cache”, and load google.com. Right-click the column headers to add Protocol (you will see h2 or h3), hover a row to see its timing breakdown (DNS, initial connection, SSL, waiting for server response, content download), and compare with a second load without “Disable cache”. chrome://net-internals/#hsts lets you query a domain’s HSTS status.
#Summary
Key takeaways
- The journey: Client → DNS → IP → connection → routing/NAT → Google server → HTTP response → rendering, with heavy overlap and caching in real life.
- Before any packet: the address bar decides search vs address, applies HSTS to force HTTPS, and splits the URL into scheme, host, port and path.
- DNS returns a nearby Google front-end IP with a short TTL; usually from a cache.
- Connection: TCP (1 round trip) + TLS 1.3 (1 round trip), or QUIC over UDP (1, sometimes 0). Browsers reuse connections and can preconnect.
- On the way: the request is encapsulated; your router does NAT; routers forward hop by hop on the destination IP; MACs change per link, TTL drops per hop; the return path may differ.
- Google’s edge: anycast/DNS steer you to a nearby PoP; the GFE terminates TLS, filters abuse and routes over Google’s backbone to backend services. CDN ≠ GFE.
- Rendering: HTML → DOM, CSS → CSSOM (render-blocking), scripts (blocking vs
defer/async), render tree → layout → paint → composite. Subresources load in parallel over HTTP/2. - Repeat visits skip DNS, handshakes and most downloads (HTTP cache, 304). In the waterfall, round trips cost the most time.
- The network is unreliable: loss shows up as delay, a missing reply cannot tell you whether the work happened (partial failure), and partitions split live machines. Answer with timeouts, retries with backoff, idempotency keys, graceful degradation, and the trade-offs of chapters 18 and 28.
Answer on your own first, then read the explanation, even when you got it right.
Self-checkQuestion
Which order matches the journey from pressing Enter to seeing google.com?
Self-checkQuestion
What does HSTS do?
Self-checkQuestion
In https://www.google.com:443/search?q=dns#results, which part is never sent to the server?
Self-checkQuestion
What is the GFE (Google Front End)?
Self-checkQuestion
What is true of HTTP/3?
Self-checkQuestion
By default, which resource blocks the browser from painting anything on the screen until it has loaded?
Self-checkQuestion
What does an HTTP 304 Not Modified response mean?
Self-checkQuestion
As your request crosses several routers on the internet, which field stays the same at every hop (after your home router’s NAT)?
Self-checkQuestion
You open google.com a minute after a previous visit. Which of these usually still happens over the network?
Self-checkQuestion
On a mobile connection with 300 ms round trips, which change helps the first visit most?
Self-checkQuestion
A Google edge location that serves many users by anycast loses power. What happens to those users?
Self-checkQuestion
A page shows ERR_CONNECTION_REFUSED. Which stage of the journey failed?
Self-checkQuestion
A page loads 60 small files from one host. Over HTTP/1.1 it is slow; over HTTP/2 it is much faster. Why?
Self-checkQuestion
A script must run after the HTML has been parsed, in document order, without blocking parsing while it downloads. How should it be loaded?
Self-checkQuestion
You want a smooth animation that moves a box across the screen. Which property should you animate?
Self-checkQuestion
Which two things happen at every router hop along the path to Google? (Choose two.)
Choose 2
Self-checkQuestion
A laptop’s clock battery died and the date reset to 2019. DNS and TCP work, but Google shows a certificate error. Why?
Self-checkQuestion
You type google.comm by mistake. What reaches Google’s servers?
Self-checkQuestion
An office firewall blocks UDP port 443. What happens when someone opens google.com?
Self-checkQuestion
A user’s very first SYN to Google is lost on a busy Wi-Fi network. What does the user experience?
Self-checkQuestion
Your app sends a payment request to an API. After 10 seconds no response has arrived and the call times out. What do you actually know?
Self-checkQuestion
Which two practices make client retries both safe and helpful? (Choose two.)
Choose 2
Self-checkQuestion
A front end calls a recommendations service on every page view, with no timeout. The network link to that service’s data centre is cut, but both sides keep running. What is the most likely outcome?
Self-checkQuestion
A backend usually answers in 20 ms (p50) and 120 ms (p99), but when it breaks, calls hang for 30 seconds or more. What timeout should callers use?
Self-checkQuestion
A server slows down, and 10,000 clients each retry every failed call immediately, three times. What is the likely effect?
Self-checkQuestion
Which HTTP method is NOT idempotent by default, so retrying it may repeat the action?
Self-checkQuestion
During a network partition, a bank’s balance service refuses writes on the side that cannot reach the majority of its replicas. Which trade-off is this?
Self-checkQuestion
Which of these is NOT one of the fallacies of distributed computing?
Self-checkQuestion
Which two parts of the Google journey exist mainly so that a failure does not stop the page from loading? (Choose two.)
Choose 2
Self-checkQuestion
The notes group “CDN / GFE” together. Which two statements are correct? (Choose two.)
Choose 2