DNS(Domain Name System)解析过程大致如下:
- 客户端发起请求
当用户在浏览器等应用中输入域名(如www.example.com)时,客户端(如电脑、手机等设备上的浏览器应用)首先会检查自身的缓存。如果缓存中有该域名对应的IP地址,就直接使用这个IP地址去访问目标服务器,这一步可快速得到结果,无需后续查询流程。
- 本地DNS服务器查询
若客户端缓存中没有所需域名的IP地址信息,客户端就会向本地DNS服务器发送DNS查询请求。本地DNS服务器通常由网络服务提供商(ISP)提供,比如电信、联通等的DNS服务器。
如果无法解析则
- 递归解析或迭代解析
● 递归解析:本地DNS服务器收到客户端请求后,如果它本身没有该域名的IP地址记录,它会代替客户端向其他DNS服务器进行查询,一直查询到能获取到结果为止,然后将结果返回给客户端。这期间客户端只需等待本地DNS服务器的最终回应,无需参与后续的具体查询操作。
● 迭代解析:本地DNS服务器收到请求后,如果自己没有记录,它会向根DNS服务器发送请求询问域名信息。根DNS服务器不会直接给出域名对应的IP地址,而是会返回负责该域名顶级域(如.com、.net等)的DNS服务器地址。然后本地DNS服务器再向这个顶级域DNS服务器查询,顶级域DNS服务器又可能返回负责该域名二级域的DNS服务器地址,如此迭代查询下去,直到找到域名对应的IP地址,最后本地DNS服务器将结果返回给客户端。
- 获取IP地址并缓存
一旦查询到域名对应的IP地址,本地DNS服务器会将这个IP地址返回给客户端,同时自己也会缓存该域名与IP地址的映射关系,以便后续再有对同一域名的查询请求时,能快速响应。客户端得到IP地址后,就可以使用这个IP地址与目标服务器建立连接,进行数据传输等操作了。
注意:
- 从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间使用的交互查询就是迭代查询
- 114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,解析成功率相对高,快,稳定。国内常用。
- 223.5.5.5和223.6.6.6是阿里提供的免费域名解析服务器地址
- 8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用