浏览器输入网址后进行的一系列操作

133 阅读3分钟

浏览器输入网址后进行的操作:

  1. 浏览器会解析网址,提取协议(例如 HTTP、HTTPS)和域名(例如 www.example.com)。

  2. DNS 解析:

    • 浏览器会进行 DNS 解析,将域名解析为对应的 IP 地址。解析过程包括以下步骤:

      • 浏览器检查本地 DNS 缓存,如果找到对应的 IP 地址,则跳过后续的 DNS 查询步骤。
      • 如果本地 DNS 缓存中没有对应的 IP 地址,浏览器向操作系统发起 DNS 查询请求。
      • 操作系统将查询请求发送给预配置的 DNS 服务器。
      • DNS 服务器进行递归查询,依次向根域名服务器、顶级域名服务器和权威域名服务器发起查询请求,直到获取到目标域名的 IP 地址。
      • DNS 服务器将 IP 地址返回给操作系统,然后传递给浏览器。
  3. 建立 TCP 连接(三次握手):

如果使用的是 HTTP 或 HTTPS 协议,浏览器会与服务器进行 TCP 连接的三次握手,确保双方能够正常通信。

  • 客户端向服务器发送一个带有 SYN(同步)标志的数据包,表示请求建立连接。
  • 服务器收到请求后,回复一个带有 SYN/ACK(同步/确认)标志的数据包,表示同意建立连接。
  • 客户端收到服务器的回复后,发送一个带有 ACK(确认)标志的数据包,表示连接建立完成。
  1. 发送网络请求:

    • 浏览器向服务器发送网络请求,请求可以包含 HTTP 方法(例如 GET、POST)、请求头(例如 User-Agent、Cookie)和请求体(例如表单数据、JSON 数据)等信息。
  2. 服务器处理请求:

    • 服务器接收到请求后,会根据请求的内容进行相应的处理,可能包括处理业务逻辑、查询数据库、生成响应等操作。
  3. 服务器返回响应:

    • 服务器生成响应数据,可以是 HTML 字符串、JSON 数据、图像等,并将响应发送回浏览器。
    • 响应包括状态码、响应头和响应体等信息。
  4. 浏览器渲染页面:

    • 如果返回的是 HTML 页面,浏览器会解析 HTML,构建 DOM 树和 CSSOM 树,然后将其合并成渲染树,并进行布局、绘制和渲染等操作,最终将页面内容呈现给用户。
    • JavaScript 代码的执行可能会修改 DOM 结构、样式和页面内容,从而触发重新渲染。
    • 具体信息查看浏览器渲染页面过程 - 掘金 (juejin.cn)

8 关闭 TCP 连接(四次挥手):

当请求响应完成后,浏览器和服务器会进行 TCP 连接的四次挥手,逐步关闭连接。

挥手过程包括以下步骤:

  • 客户端发送一个带有 FIN(结束)标志的数据包,表示请求关闭连接。
  • 服务器收到请求后,回复一个带有 ACK(确认)标志的数据包,表示收到关闭请求。
  • 服务器发送一个带有 FIN(结束)标志的数据包,表示准备关闭连接。
  • 客户端收到请求后,回复一个带有 ACK(确认)标志的数据包,表示同意关闭连接