从一道最常见的面试题聊起-浏览器输入网址后发生的故事
dns解析
dns解析的完整流程 ,本地缓存,域名服务器,udp协议
dns解析各种问题,dns劫持,dns设计缺陷,安全隐患,易被攻击等
互联网产品解决方案,HttpDNS,大厂基于HttpDNS的优化,全局精确流量调度等。
大致的流程,结合wireshark抓包分析,应该可以看的非常清楚
1
2
3
4
5
6
7
8
9
101.本机向local dns请求www.baidu.com
2.local dns向根域请求www.baidu.com,根域返回com.域的服务器IP
3.向com.域请求www.baidu.com,com.域返回baidu.com域的服务器IP
4.向baidu.com请求www.baidu.com,返回cname www.a.shifen.com和a.shifen.com域的服务器IP
5.向root域请求www.a.shifen.com
6.向com.域请求www.a.shife.com
7.向shifen.com请求
8.向a.shifen.com域请求
9.拿到www.a.shifen.com的IP
10.localdns返回本机www.baidu.com cname www.a.shifen.com 以及 www.a.shifen.com的IP
发送http请求报文,第一部https证书过程
- https整个加密流程,
- 中间人攻击,
- 解决方案,证书验证模式(AFSSLPinningModeCertificate)
传输层:tcp的三次握手四次挥手过程
应用层:http协议相关
发送http请求报文
8种http请求方法,http各个版本,每个版本之间的差异,常见的状态码,5种referrer策略
响应头各种信息,详情说明见
浏览器显示
处理HTML标记并构建DOM树
处理CSS标记并构建CSSOM树
将DOM和CSSOM合并成一个渲染树
根据渲染树来布局,以计算每个节点的几何信息
绘制到屏幕上
不同的浏览器内核处理方式还有一些差异,详情可以见:介绍 WebKit 和 Gecko 内部操作的入门文章