HTTP request and response
The browser asks for the page. The server replies with a stream of bytes.
The browser sends a GET request: the HTTP method, the path, headers (cookies, accept-language, user-agent…), and waits. The server processes the request, looking up data, rendering HTML, and starts streaming a response: a status line, response headers, then the body.
Modern servers don't wait to send everything at once. With HTTP/2 the response can be chunked and multiplexed alongside other resources on the same TCP connection. HTTP/3 goes further: it runs over QUIC (on UDP), where streams are independently tracked, so a lost packet only stalls the stream it carried instead of every concurrent resource on the connection. Either way, the browser can start parsing the first bytes while the rest are still in flight.
Takeaway
Bytes start arriving as soon as the server flushes them. The browser doesn't wait for the whole document, it begins parsing the moment the first chunk shows up.