<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Tech Chronicles]]></title><description><![CDATA[Tech Chronicles]]></description><link>https://blog.rodgersabraham.me</link><image><url>https://cdn.hashnode.com/uploads/logos/697f148f25eab7592abf95bb/2bf41182-0833-4694-9f54-d4700e641d4e.png</url><title>Tech Chronicles</title><link>https://blog.rodgersabraham.me</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 17:15:06 GMT</lastBuildDate><atom:link href="https://blog.rodgersabraham.me/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[What basically happens when you type a URL on the browser and click enter?]]></title><description><![CDATA[We usually do it hundreds of times in a day. We type a few characters into a bar, hit Enter and as if by magic a world of data appears. But for those of us in software engineering, we know it’s not ma]]></description><link>https://blog.rodgersabraham.me/url-chronicles</link><guid isPermaLink="true">https://blog.rodgersabraham.me/url-chronicles</guid><category><![CDATA[url]]></category><category><![CDATA[Browsers]]></category><category><![CDATA[Search Engines]]></category><dc:creator><![CDATA[Rodgers Abraham]]></dc:creator><pubDate>Tue, 12 May 2026 18:56:43 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/697f148f25eab7592abf95bb/4b09ee8c-228c-4871-a3ef-aebe081df682.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We usually do it hundreds of times in a day. We type a few characters into a bar, hit <code>Enter</code> and as if by magic a world of data appears. But for those of us in software engineering, we know it’s not magic. It’s a perfectly orchestrated symphony of protocols.</p>
<p>If you’ve ever wondered what happens in those few milliseconds of "loading," let’s pull back the curtain and look at the engineering blueprint of a web request.</p>
<h2><strong>1. The Hunt for the IP Address (DNS Resolution)</strong></h2>
<p>The moment you hit <code>Enter</code>, your browser becomes a detective. It parses the URL to see what you’re looking for, but it has a fundamental problem: computers don't understand names like <code>google.com</code>; they only understand numbers called <strong>IP addresses</strong>.</p>
<p>First, it checks its "memory" (cache). If it doesn't find the address there, it asks the <strong>Domain Name System (DNS)</strong>. Your request travels from your browser cache to your OS, and eventually to your ISP’s resolver. If you're using modern standards like <strong>DNS over HTTPS (DoH)</strong>, this entire "phonebook search" is encrypted, keeping your browsing habits private from prying eyes on the network.</p>
<h2>2. The Great Handshake (TCP, TLS, and QUIC)</h2>
<p>Once the browser has the IP, it needs to establish a secure "pipe" to the server. Traditionally, this is the <strong>TCP Three-Way Handshake</strong>. It’s a polite technical conversation where the client and server synchronize their sequence numbers to ensure no data is lost in transit.</p>
<p>If the site uses <strong>HTTPS</strong> (which is the standard in 2026), they also perform a <strong>TLS Handshake</strong>. This is where the server proves its identity with a certificate and both parties agree on an encryption key. If you're on a cutting-edge site using <strong>HTTP/3</strong>, this happens via <strong>QUIC over UDP</strong>, which combines the connection and encryption steps into one, significantly reducing the "wait time" before data starts moving.</p>
<h2>3. The Request &amp; The Server’s Logic</h2>
<p>Now that the pipe is secure, your browser sends an <strong>HTTP Request</strong>. It’s a digital letter saying, "<em>Hey, I’d like to see the /blog path. Here is my session cookie so you know it's me</em>."</p>
<p>On the other end, the web server (like Nginx) or an application server (running Node.js or Python) receives this. It might fetch data from a database, check your permissions, and then package everything into an HTTP Response. This comes with a Status Code:a <code>200 OK</code> means smooth sailing, while a <code>500 Internal Server Error</code> means the "engine room" on the server side just had a bad day.</p>
<h2>4. Painting the Picture (The Rendering Engine)</h2>
<p>The browser finally receives a stream of binary data that it reconstructs into HTML, CSS, and JavaScript. This is where the "Blueprint" truly comes to life:</p>
<ul>
<li><p><strong>The DOM &amp; CSSOM:</strong> The browser parses the HTML to build the "skeleton" (DOM) and the CSS to build the "style guide" (CSSOM).</p>
</li>
<li><p><strong>The Render Tree:</strong> It combines these two to decide exactly which elements need to be visible.</p>
</li>
<li><p><strong>Layout &amp; Paint:</strong> The browser calculates the geometry (where every box sits) and finally "paints" the pixels onto your screen.</p>
</li>
</ul>
<p>If there are synchronous scripts in the HTML, the browser will actually stop everything to execute them which is why as developers, we use <code>defer</code> or <code>async</code> to keep the experience smooth.</p>
<img src="https://cdn.hashnode.com/uploads/covers/697f148f25eab7592abf95bb/ce2c2252-fbf4-4402-9f24-e580aabe782e.png" alt="" style="display:block;margin:0 auto" />

<h2>Why This Matters.</h2>
<p>In the time it took you to read this paragraph, your request could have traveled through underwater fiber-optic cables and across continents multiple times. Understanding this blueprint isn't just about passing an assignment; it’s about appreciating the incredible reliability of the systems we build upon. Every millisecond we shave off a DNS lookup or a TLS handshake is a win for the user.</p>
]]></content:encoded></item></channel></rss>