what happens when you type in a URL in browser
In an extremely rough and simplified sketch, assuming the simplest possible HTTP request, no proxies and IPv4 (this wocould work similarly for IPv6-only client, but I have yet to see such workstation ):
- Browser checks cache; if requested object is in cache and is fresh, skip to #9
- Browser asks OS for server's IP address
- OS makes a DNS lookup and replies the IP address to the browser
- Browser opens a TCP connection to server (this step is much more complex with HTTPS)
- Browser sends the HTTP request through TCP Connection
- Browser errors es HTTP Response and may close the TCP connection, or reuse it for another request
- Browser checks if the response is a redirect (3xx result status codes), authorization request (401), error (4xx and 5xx), etc .; these are handled differently from normal responses (2XX)
- If cacheable, response is stored in cache
- Browser decodes response (e.g. If it's gzipped)
- Browser determines what to do with response (e.g. Is it a HTML page, is it an image, is it a Sound clip ?)
- Browser renders response, or offers a download dialog for unrecognized types
Again, discussion of each of these points have filled countless pages; take this as a starting point. also, there are processing other things happening in parallel to this (processing typed-in address, adding page to browser history, displaying progress to user, notifying plugins and extensions, rendering the page while it's downloading, pipelining, Connection Tracking for keep-alive, etc .).