面试题 三月 09, 2020

浏览器输入url到显示页面的过程

文章字数 1.4k 阅读约需 1 mins. 阅读次数 0

DNS解析,将域名地址解析为IP地址

  • 浏览器DNS缓存
  • 系统DNS缓存
  • 路由器DNS缓存
  • 运营商DNS缓存
  • 再找不到就递归搜索该网址

如果找到了,就会TCP连接

TCP三次握手

  • 第一次握手,有浏览器发起,告诉服务器,我要发送请求了
  • 第二次握手,由服务器发起,告诉浏览器我准备接受了,你发送吧
  • 第三次握手,由浏览器发送,告诉服务器,我马上发送了,准备接受吧

发送请求报文

  • 发送HTTP协议的通信内容,即请求报文

接受响应

  • 响应报文

渲染页面

  • 遇见HTML标记,浏览器调用 HTML解析器解析成Token,并构建成DOM树
  • 遇见style/link标记,浏览器调用css解析器
  • 遇见script标记,调用javascript解析器,处理script代码(绑定时间,修改dom树/css dom树)
  • 根据渲染树计算布局,计算每个节点的几何信息(布局)
  • 将各个节点颜色绘制到屏幕上(渲染)

注意这5个步骤不一定按顺序执行,如果dom树或cssdom树被修改了,可能会执行多次布局和渲染

断开连接

  • 第一次挥手,浏览器发起,发送给服务器,我东西发送完了(请求报文),你准备关闭吧
  • 第二次挥手,服务器发起,告诉浏览器,我东西接受完了(请求报文),我准备关闭了,你也准备吧
  • 第三次挥手,服务器发起,告诉浏览器,我东西发送完了(响应报文),你准备关闭吧
  • 第四次挥手,浏览器发起,告诉服务器,我东西接收完了,我准备关闭了,你也准备吧
0%