If you are curious to know what happens in the background when we type a URL in the browser then this article is definitely for you. Below are the sequence of events that occurs when we enter a URL in the browser’s address bar-
- You type the URL into address bar in your preferred browser
- The browser parses the URL to find the protocol, host, port, and path.
- Browser checks cache, if requested object is in cache and is fresh, skip to #15
- Browser asks OS for entered domain’s IP address
- OS makes a DNS lookup and replies the IP address to the browser
- Browser opens a TCP connection to the server
- When a connection is open, browser sends the HTTP request to the host
- The host forwards the request to the server software (most often Apache, IIS) configured to listen on the specified port
- Server handles the incoming request i.e server inspects the request (most often only the path), and launches the server plugin needed to handle the request (corresponding to the server language you use, PHP, Java, .NET, Python?)
- The server plugin gets access to the full request, and starts to prepare a HTTP response.
- Server sends the HTTP response back to the browser
- Browser receives HTTP response and may close the TCP connection, or reuse it for another request
- Browser checks if the response is a redirect or a conditional response (3xx result status codes), authorization request (401), error (4xx and 5xx), etc.; these are handled differently from normal responses (2xx)
- If cache-able, 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?) Browsers often use the MIME-type to determine what default action to do when a resource is fetched.
- Browser renders response, or offers a download dialog for unrecognized types
Hopefully this gives you a better idea of how a URL get proceeds 🙂