从一道最常见的面试题聊起-浏览器输入网址后发生的故事

从一道最常见的面试题聊起-浏览器输入网址后发生的故事

dns解析

  1. dns解析的完整流程 ,本地缓存,域名服务器,udp协议

  2. dns解析各种问题,dns劫持,dns设计缺陷,安全隐患,易被攻击等

  3. 互联网产品解决方案,HttpDNS,大厂基于HttpDNS的优化,全局精确流量调度等。

  4. 大致的流程,结合wireshark抓包分析,应该可以看的非常清楚

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    1.本机向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证书过程

  1. https整个加密流程,
  2. 中间人攻击,
  3. 解决方案,证书验证模式(AFSSLPinningModeCertificate)

传输层:tcp的三次握手四次挥手过程

应用层:http协议相关

  1. 发送http请求报文

8种http请求方法,http各个版本,每个版本之间的差异,常见的状态码,5种referrer策略

响应头各种信息,详情说明见

浏览器显示

  1. 处理HTML标记并构建DOM树

  2. 处理CSS标记并构建CSSOM树

  3. 将DOM和CSSOM合并成一个渲染树

  4. 根据渲染树来布局,以计算每个节点的几何信息

  5. 绘制到屏幕上

不同的浏览器内核处理方式还有一些差异,详情可以见:介绍 WebKit 和 Gecko 内部操作的入门文章