Open
Description
DNS(Domain Name System)域名系统,可以把它比作是电话簿,里面存储的是网络 ip 地址所对应的域名。在网络世界里,计算机识别谁是谁,靠的是 ip 地址,诸如 192.168.31.1
(IPv4),如果是 IPv6,则类似 2400:cb00:2048:1::c629:d7a2
,这些 ip 地址组成复杂,不容易记住。于是就有了域名系统,我们作为用户,访问一个网站的时候,不必去记住一串 ip 地址,而是自己定义一串字母字符,我们在浏览器输入这串字符时,浏览器会使用 DNS 查询,去找到这个域名所对应的实际 ip 地址,然后根据这个地址进行一系列查找资源操作。
DNS 查询过程
下面以 www.google.com
为例,说下 DNS 的解析过程:
- 用户在浏览器地址栏输入
www.google.com
- 浏览器先检查本地的 DNS 缓存以及操作系统缓存,如果有缓存直接使用
- 如果没有缓存,浏览器向本地 DNS 服务器发送一个 DNS 递归查询请求,询问 www.google.com 域名的 ip 地址
- 如果本地 DNS 服务器缓存有 IP 地址,就直接返回;否则,本地 DNS 服务器向根 DNS 服务器发送请求,询问 .com 顶级域的 IP 地址
- 根 DNS 服务器返回 .com 域名的 ip 地址
- 本地 DNS 服务器向 .com 域名服务器发送请求,询问 google.com 名称服务器的 ip 地址
- .com 域名服务器返回 google.com 域名服务器的 ip 地址
- 本地 DNS 服务器向 google.com 域名服务器发送请求,询问 www.google.com 的 ip 地址
- google.com 域名服务器返回 www.google.com 的 A 记录
- 本地 DNS 服务器将 A 记录里的 ip 地址缓存起来,并返回给浏览器
整个解析过程就是本地 DNS 服务器 —— 根域名服务器 —— 顶级域名服务器 —— 名称服务器 —— A 记录,这个过程是递归查询的过程。