[运维面试题Day2]DNS解析步骤,浏览器访问过程
📕作者:喜欢水星记
🏆系列:每日必背面试题,本系列将记录笔者每天总结的面试题,每天积累一点点,三个月将会发生质变,内容来源网络改编
🔋收藏:希望大家点个关注一起学习
简述DNS进行域名解析的过程
以某个用户访问百度(www.baidu.com)为例
- 当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的 IP 地址
- 当浏览器缓存中无域名对应 IP 则会自动检查用户计算机系统DNS缓存,再检查本地的host文件是否有该域名对应 IP。
- 当浏览器及系统缓存中均无域名对应 IP 则进入路由器缓存中检查。
- 当在用户客服端查找不到域名对应 IP 地址,则将进入 ISP DNS 缓存中进行查询。比如你用的是电信的网络,则会进入电信的 DNS 缓存服务器中进行查找。(ISP是运营商)
- 当以上均未完成,则进入根服务器进行查询。全球仅有 13 台根域名服务器,1 个主根域名服务器,其余 12 为辅根域名服务器。根域名收到请求后会查看区域文件记录,若无则将其管辖范围内顶级域名(如.com、.cn等)服务器 IP 告诉本地 DNS 服务器。
- 顶级域名服务器收到请求后查看区域文件记录,若无记录则将其管辖范围内权威域名服务器的 IP 地址告诉本地 DNS 服务器。
- 权威域名服务器接受到请求后查询自己的缓存,如果没有则进入下一级域名服务器进行查找,并重复该步骤直至找到正确纪录。
- 本地域名服务器把返回的结果保存到缓存,以备下一次使用,同时将该结果反馈给客户端,客户端通过这个 IP 地址即可访问目标Web服务器。至此,DNS递归查询的整个过程结束。
简单概括的过程为:
- 查看浏览器缓存
- 查看系统缓存
- 查看路由器(本地DNS服务器)缓存
- 查看ISP DNS 缓存
- 询问根域名服务器
- 询问顶级域名服务器
- 询问权威域名(主域名)服务器
- 保存结果至缓存
简述浏览器访问一个网页的全过程
1, 开打浏览器输入网址,然后回车;
2, DNS解析域名,查找网页对应的IP地址
浏览器对输入网址的域名进行DNS解析,获取域名的IP地址;(重要细节:浏览器首先要查看DNS缓存和hosts文件,如果这两个地方都没有域名的IP地址,再向网络发起DNS查询)
3, 客户端和服务器通过三次握手建立TCP连接
4, 发出HTTP请求
5,服务器处理请求并返回HTTP响应报文
6,浏览器解析渲染界面
分析数据净核,根据不同情况处理,比如说,返回的是一个html页面,则渲染这个页面(可以理解为显示出来),渲染的过程中会遇到一些数据标记,比如图片,这时候就查找本地缓存,如果缓存里有且没过期,就使用本地缓存的数据,否则就向服务器发送请求,从2开始。同时还要下载和运行js代码。
7,四次挥手释放TCP连接