If you are reading this then i would recommend to read this article first for a clear visibility that what we will understand in depth 🙂
Have you ever wondered, precisely –
- What happens in the background when we type a URL in the browser?
- How does a web page life-cycle sequence work?
- How browser knows, where to send request for the requested page?
- What happens on the Web Server when a request for a web page comes in?
- How does the Web server handle the incoming request?
- How is the HTML that is emitted to the client generated?
- How browser renders the page on the screen?
If you are also looking answers of above mentioned questions then this article is definitely for you. In this article, we will take a deeper look at the sequence of events that take place when we visit a ASP.NET page URL –
- URL is typed in address bar of the browser
- The browser parses the URL to find the protocol, host, port, and path. Ex- http://www.jogendras.com/about/ will be parsed as-
- Protocol – http
- Hostname – http://www.jogendras.com
- URL path – /about
- Browser checks cache, if requested object is in cache and is fresh then return response from cache.
- The browser looks up the IP address for the entered domain name. When we want to connect to http://www.google.com, we actually want to reach out to a server where web application is hosted. One such server is having an IP address of XX.XXX.XXX.XX. Now, if we type http://XX.XXX.XXX.XX in the browser, this will take us to http://www.google.com itself. Which means, http://www.google.com and http://XX.XXX.XXX.XX are nothing but same stuff. But, it is not so.
As google has multiple servers in multiple locations to cater to the huge volume of requests. Thus we should let application decide which server is best suited to our needs. Using http://www.google.com does the job for us. When we type http://www.google.com DNS services comes into play and resolves the URL to a proper IP address. The DNS lookup proceeds as follows-
- Browser cache – The browser maintain cache of DNS records for some time. So, this is the first place to resolve DNS queries. If not found in browser’s cache then it makes a system call to underlying OS to fetch the record.
- OS cache
- Router cache
- ISP DNS cache
- Recursive search
- If, browser does not have IP address in its cache then it asks OS for entered domain’s IP address
- OS makes a DNS lookup and replies the IP address to the browser: OS uses the DNS client service to find the IP address- win + r => services.mscIt first checks in Hosts file and then-
- OS cache – If not found in hosts file then it checks in OS local DNS cache.
- Router cache – If above steps fail to get a DNS record, the search continues to your router which has its own cache
- ISP DNS cache – If above also fails then search moves on to ISP’s DNS server, first, it tries in its cache if not found then ISP’s DNS recursive search comes into the picture.
- Recursive search – If everything fails then recursive search begins from the root level namesever. For the DNS enthusiasts – here is a great guide worth reading
- As, now browser has the domain’s IP address so browser opens a TCP connection to the server
Coming Soon….. 🙂