This question is really testing whether you can walk a system end to end without skipping layers, and whether you know the actual costs at each step. A strong answer names each hop, what the machine does at that hop, and roughly how long it takes.
The mental model: five phases — DNS, TCP, TLS, HTTP, render.
First, the browser checks its caches for the hostname: memory, disk, then the OS resolver. On a cold cache it sends a DNS query — a UDP datagram to the configured resolver, typically via a recursive resolver like 8.8.8.8 or a local stub. That's ~1 RTT to a nearby resolver, more if the resolver has to walk the tree itself. The answer includes the IP plus a TTL that decides when the cache goes stale.
Next, TCP. The client sends a SYN, the server replies SYN-ACK, the client ACKs — three segments, one round trip on a typical client, roughly half the base RTT each way. On a 20ms RTT link that's about 20ms before the socket even exists.
If the URL is https, TLS happens on top of that open socket. With TLS 1.3 the handshake is one RTT for the key exchange plus one for the client's Finished — total two RTTs after the TCP handshake. TLS 1.2 adds a second round trip with two key-exchange flights.
Then the HTTP request. The browser writes the GET line, headers, and Host onto the socket. On a fresh connection, the first request can sit behind the TCP handshake and Nagle interactions, but with connection reuse and HTTP/2 streams, subsequent requests skip almost all of that.
Finally, the server: the kernel demuxes the packet to the listening socket, the app reads the request, runs the route handler, and returns the response — where browsers can only open 6 parallel TCP connections per host on HTTP/1.1, which is why HTTP/2 multiplexing matters.
Tradeoffs and edge cases: the whole flow is ~3-4 RTTs on a cold path with TLS 1.3, so a user-perceived "fast" load is mostly about eliminating RTTs, not bytes. Caches, keep-alive, and prefetching are each attacking one of those round trips. Mention HSTS preload as the thing that removes a redirect hop, and the browser's per-host connection limit as the reason modern sites shard or switch to HTTP/2.