这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记
什么是 DNS 解析
DNS (Domain Name System)是就是域名系统。 众所周知,访问一个网页有两种方式:
- 通过该网页所在服务器的 IP 地址进行访问
- 通过该网页域名进行访问 通过 IP 地址进行访问相信大家都能够理解。那为什么通过域名也可以直接访问呢?这就需要用到 DNS 解析。
DNS 解析流程
我们以 www.test.com 作为演示。
- 首先,浏览器会查看自己的缓存,如果浏览器有这个 DNS 缓存,那么就获取到了这个域名对应的 IP 地址;
- 其次,浏览器会查找电脑本地的 DNS 缓存
- 如果本地并没有缓存,那就会向根服务器请求查询
- 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com。于是会给我们 .com 顶级域名服务器的地址。
- 然后再去访问顶级域名服务器,询问 www.test.com 的地址。顶级域名服务器也不会直接告诉地址。而是会告诉我们 test.com 的权威 DNS 服务器的地址。
- 向权威 DSN 服务器询问,权威 DNS 服务器查询后返回结果给本地 如图所示:
额外需要注意的是,DNS 解析成功后会自动进行缓存。
小实验
我们可以做一个比较小的实验。对于 www.test.com ,是无法访问的,因为这不是一个有效的域名。现在我们想要通过这个域名访问 。对于 Windows 系统,我们只需要找到 C:\Windows\System32\drivers\etc\hosts 文件,在末尾加上一行:81.70.17.190 test.com 。这样通过 test.com 就可以访问我自己的网站了。
这是因为进行 DNS 查询的时候,在本地缓存时,查询到 test.com 的 IP 地址为 81.70.17.190。所以就直接去访问了。