浏览器输入网址回车后到底做了什么?

168 阅读1分钟

1. 解析域名

  • DNS域名解析,浏览器查找域名的IP地址
    1. 浏览器DNS缓存
    2. 计算机DNS缓存
    3. 路由器DNS缓存
    4. 网络运营商DNS缓存
    5. 递归查询

2. TCP连接(TCP三次握手)

  • 客户端告知服务端准备好了,请确认
  • 服务端告知客户端也准备好了,请确认
  • 客户端告知服务端,确认完毕,握手结束,建立连接

3. 发请求到服务器

  • 发送请求报文

4. 服务器响应返回

  • 返回响应报文

5. 浏览器解析渲染页面

  • 遇到HTML,调用HTML解析器,解析成DOM树
  • 遇到CSS,调用CSS解析器,解析成CSSOM树
  • 遇到JS,调用JS解析器,解析JS代码
    • 可能要修改元素节点,重新调用HTML解析器,解析成新的DOM树
    • 可能要修改样式,重新调用CSS解析器,解析成新的CSSOM树

6. 断开TCP连接(TCP四次挥手)

  • 客户端告知服务端,请求发送完毕,可以断开连接了
  • 服务端告知客户端,请求接受完毕
  • 服务端告知客户端,响应发送完毕,可以断开连接了
  • 客户端告知服务端,响应接受完毕,断开连接