Each device connected to the Internet has a unique IP address which other machines use to find the device.
ex:
- 192.168.1.1 (in IPv4)
- 2400:cb00:2048:1::c629:d7a2 (in IPv6)
DNS translates domain names to IP addresses so browsers can load Internet resources.
DNS Lookup> by serving the requested resource record earlier in the DNS lookup. Query
- DNS Recursor: Receives queries from client machines:- apps such as web browsers
- Root Name Server: An index to different TLD name servers - serves as a reference to other more specific locations.
- Top Level Domain(TLD) Name Server: (In example.com, the TLD server is “com”)
- Authorative Name Server:
Caching is done afterwards. by serving the requested resource record earlier in the DNS lookup.
Additional Name Server - subdomain
where the query is for a subdomain such as foo.example.com or blog.cloudflare.com, an additional nameserver will be added to the sequence after the authoritative nameserver, which is responsible for storing the subdomain’s CNAME record.
The 8 steps in a DNS lookup:
- A user types ‘example.com’ into a web browser and the query travels into the Internet and is received by a DNS recursive resolver.
- The resolver then queries a DNS root nameserver
- The root server then responds to the resolver with the address of a Top Level Domain (TLD) DNS server (such as .com or .net), which stores the information for its domains. When searching for example.com, our request is pointed toward the .com TLD.
- The resolver then makes a request to the .com TLD.
- The TLD server then responds with the IP address of the domain’s nameserver, example.com.
- Lastly, the recursive resolver sends a query to the domain’s nameserver.
- The IP address for example.com is then returned to the resolver from the nameserver.
- The DNS resolver then responds to the web browser with the IP address of the domain requested initially.
Once the 8 steps of the DNS lookup have returned the IP address for example.com, the browser is able to make the request for the web page:
- The browser makes a HTTP request to the IP address.
- The server at that IP returns the webpage to be rendered in the browser (step 10)