一.DNS域名解析流程
DNS中的递归查询和迭代查询:
- 递归查询: 是一般主机和本地域名服务器之间属于递归查询.就是当主机所询问的域名本地服务器不知道的时候,本地服务器就会一DNS客户的身份向其它域名服务器发出查询请求,直到得到结果并转交给主机
- 迭代查询: 一般DNS服务器之间属于迭代查询. 假如DNS服务器A不能响应DNS服务器B的请求,那么它就会告诉服务器B下一步应该去找哪个DNS服务器,然后进行后续的查询.
域名解析过程:
- 主机会先在浏览器缓存中进行查找对应关系,如果找不到则到本机的hosts文件中进行查找
- 如果还没有找到,则主机先向本地域名服务器进行递归查找
- 如果还没有找到,本地域名服务器会采用迭代查询,向一个根域名服务器查询
- 如果还没有找到,根域名服务器告诉本地域名服务器,我这里查不到,然后告诉他下一步应该查询的顶级域名服务器的IP地址
- 本地域名服务器再去顶级域名服务器查询
- 如果还没有找到,顶级域名服务器告诉本地域名服务器,我这里也查不到,然后告诉他下一步应该查询的权限域名服务器的IP地址
- 本地域名服务器再到权限域名服务器查询
- 权限域名服务器告诉本地域名服务器,所查询域名对应的IP
- 本地域名服务器最后再将查询结果告诉主机
二.浏览器输入一个URL会发生什么
- 域名解析(根据域名查找服务器IP地址)
- 组织HTTP请求报文
- TCP搭建客户端(涉及三次握手),发送HTTP请求
- 服务端收到HTTP请求后,解析HTTP请求,组织HTTP响应报文,发送给浏览器
- 浏览器收到HTTP响应报文后,解析响应渲染页面