dns 是域名服务器
hosts 是存在你的电脑本地的域名检析
在对域名解析的时候, 计算机会优先查看本地的HOSTS文件
- win10: C:\Windows\System32\drivers\etc\hosts
- mac: /private/etc/hosts 中是否存在相应的域名解析记录。
如果存在则返回域名对应的IP地址,如果不存在则在通过DNS来查到该域名对应的IP地址
假设你hosts文件中有对应的 www.baidu.com 的 ip地址,
- 那么电脑就不会去dns服务器获取这个ip
- 而是直接将你的域名翻译为ip然后过去
假设你的hosts文件中没有对应的 www.baidu.com
- 那么电脑就会先发送这个域名请求到 dns 服务器 ,
- 服务器会将这个域名检析为相应的 ip地址 返回给你的电脑 然后电脑再通过这个ip地址来访问网站
通俗地比方:DNS就是全市的电话黄页,HOSTS就是你的个人通讯本了
需要把 www.baidu.com这样的网址通过DNS服务器解析成11.232.25.22这样的IP地址,然后才能访问到网站
但每个访问请求都要等待DNS的回应的话,太没有效率了,
所以就有了一个本地的小DNS就是HOSTS了,电脑会优先在本地的HOSTS中查找,如果能解析IP解,不能才再向DNS请求
其中dns域名的检析是从 .com 这个终极域名开始 一级一级往下查询的