06 | 域名里有哪些门道?
域名DNS和HTTP有间接的关系,用户访问特定网络资源通常以域名形式而非IP方式。
本节表述IP转MAC的说法是错误的,IP是封装在MAC内部的,MAC具有本地属性,而IP具有网际属性,每经过一跳,会重新构造MAC层,而IP层不变。【不考虑流量控制】
DNS查询的来源及查询优先级
- 浏览器DNS缓存
- 系统DNS缓存
- 本地DNS服务器缓存/host文件
- 本地DNS服务器
- 根DNS
- 顶级DNS
- 权威DNS
注:本地DNS服务器通常是本地运营商维护的,或企业自己搭建的,或知名企业公开的DNS服务器。
注:就win10而言,系统启动是会加载host文件内容到系统DNS缓存,并监视host文件的改动,一旦有改动,就会动态更新系统DNS缓存,所以host文件,系统DNS缓存可以合并考虑。
DNS的递归和迭代查询
- 客户端向本地域名服务器查询IP的方式是递归查询
- 本地域名服务器向根域名服务器查询获取IP的方式,可以是递归也可是迭代,通常是迭代
- 递归就是你把查询交给别人,让别人查到,再返回给你
- 迭代就是你找别人要,他叫你去别的地方找
参考:DNS递归查询与迭代查询
域名可以用来标识虚拟主机
- 为了节省资源,提高资源利用率,在一台主机上可以同时运行多个web服务,每个服务有一个域名,共用一个主机IP,即虚拟主机,HTTP/1.1中请求头部强制要求携带Host,用来标识虚拟主机。
域名本质是一个名字空间系统,引入域名后的新应用
- 重定向
- 名字服务
- DNS负载均衡
课后作业
在浏览器地址栏里随便输入一个不存在的域名,比如就叫“www. 不存在.com”,试着解释一下它的 DNS 解析过程。
- 因为域名不存在,所以会把整个DNS查询过程走一遍,并报错:“您所访问的域名错误或者不存在”。
- 具体查询过程:缓存,包括浏览器缓存,操作系统缓存/ Host文件 本地DNS缓存 根服务器,到.com一级域名服务器时返回错误,因为不存在该二级域名
- 如果用nslookup 则报Non-existent domain,或超时
如果因为某些原因,DNS 失效或者出错了,会出现什么后果?
- 报错:“您所访问的域名错误或者不存在”,浏览器不会建立TCP连接。