每台计算机都有其IP地址,类似于人的身份证号,独一无二
实际使用中大家更偏向于通过域名来访问计算机,因为域名更具有可读性
DNS(Domain Name System,域名解析系统)提供IP地址和域名之间的映射关系,它处于应用层(TCP/IP五层协议模型)
DNS的层级结构
- 权威域名服务器
- 顶级域名服务器
- 根域名服务器
DNS解析过程
假设浏览器输入域名www.example.com,首先查找各级缓存,不存在则发起向各级DNS服务器发起请求,过程如下
DNS缓存
- 浏览器缓存
chrome://net-internals/#dns (只能看到清除按钮,原因不详,浏览器版本问题?)
www.jianshu.com/p/9e7aa4ec4… - 操作系统缓存
执行ipconfig /displaydns可查看
执行ipconfig /flushdns 清除 - 本地host配置文件 所在路径(window系统):C:\Windows\System32\drivers\etc
本地开发时经常配置127.0.0.1至localhost.company.com (公司地址的子域名)
- 本地DNS服务器
查找DNS服务器
- 客户端向本地本地DNS服务器发起一个查询请求
- 本地DNS服务器把该请求转发至根域名服务器,根域名服务器返回对应的.com顶级域名服务器地址列表
- 本地DNS服务器把该请求转发至.com顶级域名服务器,.com顶级域名服务器返回负责解析example.com的权威域名服务器ns.example.com的地址
- 本地DNS服务器把该请求转发至权威域名服务器,权威域名服务器最终返回www.example.com
- 本地DNS服务器将www.example.com跟 IP 地址的映射返回给客户端
拓展
分布式数据库
ISO 分层 应用层
域名
IP地址
哪部分是递归查询和迭代查询