返回

互联网的幕后故事:从 URL 到内容呈现的全过程

前端

在浏览器输入 URL 回车之后发生了什么(超详细版)

当你在浏览器中输入 URL 并回车后,以下事件将依次发生:

  1. 浏览器解析 URL

    浏览器首先会解析 URL,并将其分解为以下几个部分:

    • 协议(如 或 https://)
    • 主机名(如 www.example.com
    • 端口号(如 80 或 443)
    • 路径(如 /index.html)
    • 查询字符串(如 ?q=search+term)
    • 片段标识符(如 #section1)
  2. DNS 查询

    浏览器接下来会进行 DNS 查询,以将主机名解析为 IP 地址。DNS 查询的过程如下:

    • 浏览器首先会检查其本地 DNS 缓存,看是否有主机名的 IP 地址记录。
    • 如果本地 DNS 缓存中没有主机名的 IP 地址记录,浏览器会向 DNS 服务器发送查询请求。
    • DNS 服务器会查询其数据库,并将主机名的 IP 地址记录返回给浏览器。
  3. 建立 TCP 连接

    浏览器在获得主机名的 IP 地址后,会与该 IP 地址对应的服务器建立 TCP 连接。TCP 连接是网络通信的基本单位,它允许两个设备在网络上交换数据。

  4. 发送 HTTP 请求

    浏览器通过 TCP 连接向服务器发送 HTTP 请求。HTTP 请求包含以下信息:

    • 请求方法(如 GET 或 POST)
    • 请求路径(如 /index.html)
    • HTTP 版本(如 HTTP/1.1 或 HTTP/2)
    • 请求头(如 User-Agent、Accept-Language 等)
    • 请求体(如果请求方法是 POST,则包含要提交的数据)
  5. 服务器处理 HTTP 请求

    服务器在收到 HTTP 请求后,会对其进行处理。处理过程如下:

    • 服务器首先会检查请求的语法是否正确。
    • 如果请求的语法正确,服务器会根据请求的路径和方法来执行相应的操作。
    • 例如,如果请求的路径是 /index.html,服务器会将 index.html 文件的内容返回给浏览器。
  6. 浏览器接收 HTTP 响应

    服务器在处理完 HTTP 请求后,会将 HTTP 响应发送回浏览器。HTTP 响应包含以下信息:

    • 响应状态码(如 200 OK 或 404 Not Found)
    • 响应头(如 Content-Type、Content-Length 等)
    • 响应体(如 index.html 文件的内容)
  7. 浏览器解析 HTTP 响应

    浏览器在收到 HTTP 响应后,会对其进行解析。解析过程如下:

    • 浏览器首先会检查响应的状态码,以确定请求是否成功。
    • 如果请求成功,浏览器会根据响应的 Content-Type 来解析响应体。
    • 例如,如果响应的 Content-Type 是 text/html,浏览器会将响应体解析为 HTML 文档。
  8. 浏览器渲染内容

    浏览器在解析完 HTTP 响应后,会将其渲染为可视内容。渲染过程如下:

    • 浏览器首先会根据 HTML 文档创建 DOM 树。
    • 浏览器接下来会根据 CSS 样式表为 DOM 树中的元素应用样式。
    • 最后,浏览器会将 DOM 树和 CSS 样式表结合起来,将其渲染为可视内容。
  9. 内容呈现在浏览器中

    浏览器在渲染完内容后,会将其呈现在浏览器窗口中。此时,你就可以看到你请求的网页内容了。