Transcript from the "Q3: Resolving Domain Requests" Lesson
>> Okay, Question 3. Fill in the correct terms. So we have the Recursive DNS Resolver, the Root Name Server, the IP Address, the Top Level Domain Name Server, and the Authoritative Name Server. So I kind of put them where they should be when you read that text. I don't know if that makes sense.
[00:00:22] All right, let's see where everything should go. So the browser first sends a request to A, the Recursive DNS Resolver, then the Recursive DNS Resolver queries a Root Name Server. The Root Name Server then responds with the TLD or Top Level Domain Name Server's IP address. The Recursive DNS Resolver queries the TLD Name Server.
[00:00:43] And then the TLD Name Server responds with the Authoritative Name Server's IP address, [LAUGH]. Recursive DNS Resolver requeries the Authoritative Name Server. And finally, the Authoritative Name Server responds with the website's IP Address. Okay, so what are we even talking about here? So we're talking about DNS because, before a browser knows where to actually fetch your data from, it cannot just know the domain, it needs to get an IP address, and this is the entire DNS resolving story.
[00:01:11] So first, your browser sends a request to your DNS resolver. This is usually provided with your ISP, or you can also use the Google DNS, CloudFlare DNS to say hey, I need to go to www.website.com. What's the IP for this so I can make a request to that server?
[00:01:28] Your DNS Resolver, that first query is a Root Name Server. There are only 13 kind of IPs for Root Name Servers in the world. They all contain IP addresses to the next DNS server, which we talked about earlier, so top-level domain name server. But a common kind of misconception here is that there are only 13 physical servers in the world for Root Name Servers, that's not the case.
[00:01:49] They use something called anycast routing, which essentially allows you to have only 13 IP addresses, but they can point to multiple servers. One IP address can point to multiple servers just to still make sure that the entirety in this process is fast, and you don't have to make a request to the other side of the world.
[00:02:06] But anyway, so the Root Name Servers, they contain the IP address for the top-level domain server for the TLDs like .com, .net, .nl, all those things. So this was like, all right, you need.com, that's fine, here's the IP address for that top-level domain. So based on that IP address, the DNS Resolver is now like hey, I need it for website.com.
[00:02:26] Because the top-level domain server has the IP addresses for the Authoritative Name Servers for all the domains that ends with a certain top-level domain, right? So it's like, okay, I got google.com, twitter.com. I also have website.com. Perfect, this is the IP address. Oop, and it returns that. So that was the IP address that just [LAUGH] returned.
[00:02:45] And then finally, we have the Authoritative Name Server. And this name server contains the actual DNS records for your domain. So it has the A name or A record, triple A, all that stuff. So it also has, okay, for this domain, it's this IP, so this is kinda your final answer domain.
[00:03:10] So it's like, okay, for www.website.com, this is your IP address. And this IP address corresponds with your web server, right? So finally, this is now your server based on that IP address. So it can start the entire TCP process, create a TCP connection, and finally, make your request to fetch the resource.
[00:03:28] So this proces called DNS Resolving happens every time that you make a request to a third party or a kind of cross-origin. And normally your DNS Recursive Resolver also has a cache, so you don't have to have this process every time for websites that you visit frequently. But yeah, in some cases, you still have to do this pretty often.
[00:03:51] It kinda depends on the TTL, the time to leave that servers have for their DNS records. Yeah.
>> TLS connection is also made for HTTP requests?
>> Yeah, TLS isn't for HTTP, TCP is for HTTP. But TLS is like the secure. We'll also have a question on that later, by the way.
[00:04:10] That's just for HTTPS. That's the entire client hello server, hello to create that encrypted connection between the client and the server. But you will always need a TCP connection unless you use HTTP3, which we'll also have a question on. Then you don't need that. But, yeah, if that made any sense.
[00:04:30] So, yeah, the TCP connection is just that established connection between the client and the server where they can actually send HTTP requests, right? It's kind of like the transport layer for your requests.