DNS解析 | 青训营笔记

244 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记

什么是 DNS 解析

DNS (Domain Name System)是就是域名系统。 众所周知,访问一个网页有两种方式:

  1. 通过该网页所在服务器的 IP 地址进行访问
  2. 通过该网页域名进行访问 通过 IP 地址进行访问相信大家都能够理解。那为什么通过域名也可以直接访问呢?这就需要用到 DNS 解析。

DNS 解析流程

我们以 www.test.com 作为演示。

  1. 首先,浏览器会查看自己的缓存,如果浏览器有这个 DNS 缓存,那么就获取到了这个域名对应的 IP 地址;
  2. 其次,浏览器会查找电脑本地的 DNS 缓存
  3. 如果本地并没有缓存,那就会向根服务器请求查询
  4. 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com。于是会给我们 .com 顶级域名服务器的地址。
  5. 然后再去访问顶级域名服务器,询问 www.test.com 的地址。顶级域名服务器也不会直接告诉地址。而是会告诉我们 test.com 的权威 DNS 服务器的地址。
  6. 向权威 DSN 服务器询问,权威 DNS 服务器查询后返回结果给本地 如图所示:

未命名绘图.png

额外需要注意的是,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。所以就直接去访问了。