老问题:输入URL到显示网页经历了什么

220 阅读1分钟
  1. DNS解析
  • 浏览器DNS缓存
  • 系统DNS缓存
  • 路由器DNS缓存
  • 运营商DNS缓存
  • 再找不到就递归搜索该网址
  1. 如果找到了,得到IP
  • 建立TCP连接 三次握手
  • 第一次握手由浏览器发起,告诉服务器,我要发送请求了
  • 第二次握手由服务器发起,告诉浏览器我准备接受了,你发送吧
  • 第三次握手由浏览器发起,告诉服务器,发送请求
  1. 发送请求报文
  2. 接受响应报文
  3. 渲染页面
  • 遇到HTML标记,调用HTML解析器,构建DOM树
  • 遇到style/link标记,调用css解析器
  • 遇到script标签,调用javascript解析器
  • 根据渲染树计算布局
  • 渲染(绘制)
  • 以上步骤不一定顺序执行,dom树被修改或cssdom被修改 6.断开TCP连接
  • 第一次挥手由浏览器发起,发给服务器,我东西发完了,你准备关闭吧(请求报文)
  • 第二次挥手由服务器发起,我接受完了,我要关闭了,你也准备关闭吧(请求报文)
  • 第三次挥手由服务器发起,告诉浏览器,我东西发完了,你准备关闭吧(响应报文)
  • 第四次挥手由浏览器发起,发给服务器,我东西接受了,要关闭了,你准备关闭吧(响应报文)