{"id":9,"date":"2026-02-09T23:27:56","date_gmt":"2026-02-09T23:27:56","guid":{"rendered":"https:\/\/pvdprakash.com\/blog\/?p=9"},"modified":"2026-02-09T23:33:40","modified_gmt":"2026-02-09T23:33:40","slug":"the-journey-of-a-url-what-happens-when-you-hit-enter-the-url-in-browser","status":"publish","type":"post","link":"https:\/\/pvdprakash.com\/blog\/the-journey-of-a-url-what-happens-when-you-hit-enter-the-url-in-browser\/","title":{"rendered":"The Journey of a URL: What Happens When You Hit Enter the URL in browser?"},"content":{"rendered":"<div style=\"margin-top: 0px; margin-bottom: 0px;\" class=\"sharethis-inline-share-buttons\" ><\/div>\n<p>When you type a URL into your browser and hit Enter, a complex chain of events is triggered to transform a line of text into a functional website. Here are the complete notes on that process, broken down into five logical phases.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"748\" src=\"https:\/\/pvdprakash.com\/blog\/wp-content\/uploads\/2026\/02\/WhatsApp-Image-2026-02-09-at-2.31.52-PM-1024x748.jpeg\" alt=\"\" class=\"wp-image-10\" srcset=\"https:\/\/pvdprakash.com\/blog\/wp-content\/uploads\/2026\/02\/WhatsApp-Image-2026-02-09-at-2.31.52-PM-1024x748.jpeg 1024w, https:\/\/pvdprakash.com\/blog\/wp-content\/uploads\/2026\/02\/WhatsApp-Image-2026-02-09-at-2.31.52-PM-300x219.jpeg 300w, https:\/\/pvdprakash.com\/blog\/wp-content\/uploads\/2026\/02\/WhatsApp-Image-2026-02-09-at-2.31.52-PM-768x561.jpeg 768w, https:\/\/pvdprakash.com\/blog\/wp-content\/uploads\/2026\/02\/WhatsApp-Image-2026-02-09-at-2.31.52-PM-440x321.jpeg 440w, https:\/\/pvdprakash.com\/blog\/wp-content\/uploads\/2026\/02\/WhatsApp-Image-2026-02-09-at-2.31.52-PM-680x497.jpeg 680w, https:\/\/pvdprakash.com\/blog\/wp-content\/uploads\/2026\/02\/WhatsApp-Image-2026-02-09-at-2.31.52-PM.jpeg 1179w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Phase 1: The DNS Lookup (Finding the Address)<\/h2>\n\n\n\n<p>Before the browser can connect to a server, it needs to translate the human-readable URL (e.g., <code>www.example.com<\/code>) into a machine-readable IP address (e.g., <code>93.184.216.34<\/code>).<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Browser Cache:<\/strong> The browser checks its own internal &#8220;phonebook&#8221; to see if you\u2019ve visited this site recently.<\/li>\n\n\n\n<li><strong>OS &amp; Router Cache:<\/strong> If not found, it asks your computer\u2019s Operating System, then your router.<\/li>\n\n\n\n<li><strong>ISP (Recursive) Resolver:<\/strong> If still unknown, the request goes to your Internet Service Provider.<\/li>\n\n\n\n<li><strong>The DNS Hierarchy:<\/strong> If the ISP doesn&#8217;t have it, it queries the <strong>Root Nameservers<\/strong>, which point to the <strong>Top-Level Domain (TLD) server<\/strong> (like <code>.com<\/code>), which finally points to the <strong>Authoritative Nameserver<\/strong> that holds the actual IP.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Phase 2: The TCP\/IP Handshake (Connecting)<\/h2>\n\n\n\n<p>Once the IP address is known, the browser must establish a connection to the server. Most websites use <strong>HTTPS<\/strong>, which requires a reliable connection.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>SYN (Synchronize):<\/strong> The client sends a packet to the server asking to connect.<\/li>\n\n\n\n<li><strong>SYN-ACK (Acknowledgment):<\/strong> The server replies, confirming it is open for business.<\/li>\n\n\n\n<li><strong>ACK:<\/strong> The client sends a final confirmation.<\/li>\n\n\n\n<li><strong>TLS Handshake:<\/strong> For secure (HTTPS) sites, an additional &#8220;handshake&#8221; occurs here to exchange encryption keys, ensuring no one can eavesdrop on your data.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Phase 3: The HTTP Request<\/h2>\n\n\n\n<p>Now that the &#8220;pipe&#8221; is open, the browser sends an <strong>HTTP Request<\/strong>. This is a text-based message that tells the server exactly what the user wants.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Method:<\/strong> Usually a <code>GET<\/code> request (asking for data).<\/li>\n\n\n\n<li><strong>Headers:<\/strong> Includes info like what browser you are using (User-Agent) and what types of files you can accept.<\/li>\n\n\n\n<li><strong>URL Path:<\/strong> Telling the server exactly which page or file to send back.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Phase 4: The Server Response<\/h2>\n\n\n\n<p>The web server receives the request, finds the content on its hard drive (or generates it using a database), and sends it back.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Status Codes:<\/strong> The response starts with a code. <code>200<\/code> means success, <code>404<\/code> means not found, and <code>500<\/code> means the server crashed.<\/li>\n\n\n\n<li><strong>Response Body:<\/strong> This contains the actual <strong>HTML<\/strong> code of the website.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Phase 5: Browser Rendering (Building the Page)<\/h2>\n\n\n\n<p>This is the &#8220;construction&#8221; phase where the browser turns raw code into the visual page you see.<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Parsing HTML:<\/strong> The browser reads the HTML and builds the <strong>DOM (Document Object Model)<\/strong>\u2014a tree-like structure of all the elements on the page.<\/li>\n\n\n\n<li><strong>Parsing CSS:<\/strong> It reads the styling rules and builds the <strong>CSSOM (CSS Object Model)<\/strong>.<\/li>\n\n\n\n<li><strong>JavaScript Execution:<\/strong> The browser downloads and runs JavaScript, which can change the DOM or add interactivity.<\/li>\n\n\n\n<li><strong>Render Tree:<\/strong> The DOM and CSSOM are combined to figure out what is actually visible.<\/li>\n\n\n\n<li><strong>Layout &amp; Painting:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Layout:<\/strong> Calculating the exact coordinates and size of every box on the screen.<\/li>\n\n\n\n<li><strong>Painting:<\/strong> Filling in pixels with colors, images, and borders.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">Key Summary Table<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Step<\/strong><\/td><td><strong>Primary Protocol<\/strong><\/td><td><strong>Goal<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Lookup<\/strong><\/td><td>DNS<\/td><td>Convert Name $\\rightarrow$ IP Address<\/td><\/tr><tr><td><strong>Connect<\/strong><\/td><td>TCP\/TLS<\/td><td>Establish a secure &#8220;conversation&#8221;<\/td><\/tr><tr><td><strong>Request<\/strong><\/td><td>HTTP<\/td><td>Ask for the specific webpage files<\/td><\/tr><tr><td><strong>Render<\/strong><\/td><td>HTML\/CSS\/JS<\/td><td>Turn code into a visible, interactive UI<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Would you like me to expand on any specific part of this, such as the <strong>security certificates (SSL\/TLS)<\/strong> or how <strong>JavaScript engines<\/strong> like V8 work?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you type a URL into your browser and hit Enter, a complex chain of events is triggered to transform a line of text into a functional website. Here are the complete notes on that process, broken down into five logical phases. Phase 1: The DNS Lookup (Finding the Address) Before the browser can connect [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4],"tags":[12,7,17,11,9,8,6,15,19,20,5,14,21,10,18,16,13],"class_list":["post-9","post","type-post","status-publish","format-standard","hentry","category-tech-explained","category-web-development","tag-browser","tag-browsers","tag-cache","tag-client","tag-client-server-architecture","tag-coding-101","tag-dns","tag-domain-name","tag-http","tag-https","tag-internet","tag-ip-address","tag-network","tag-server","tag-tcp","tag-url","tag-website"],"_links":{"self":[{"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/posts\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":1,"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"predecessor-version":[{"id":11,"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/posts\/9\/revisions\/11"}],"wp:attachment":[{"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pvdprakash.com\/blog\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}