从输入URL到页面加载完中间发生了什么?

当浏览器地址栏的 URL 发生变化时,通常会经历以下步骤:

  1. 用户输入或导航操作:用户在地址栏中输入新的 URL 或者通过点击链接、前进/后退按钮等进行导航操作。

  2. URL 解析:浏览器会解析新的 URL,并将其拆分为不同的组成部分,包括协议(例如 http://)、域名、路径、查询参数等。

  3. DNS 解析:如果 URL 中包含了域名部分,浏览器会将该域名发送给 DNS 服务器进行解析,以获取对应的 IP 地址。

  4. 建立连接:浏览器使用解析得到的 IP 地址建立与目标服务器的 TCP 连接。这个过程经历了 TCP 的三次握手,确保双方能够正常通信。

  5. 发送 HTTP 请求:浏览器向服务器发送一个 HTTP 请求,请求中包含了要获取的资源的信息,如请求方法(GET、POST 等)、路径、请求头、请求体等。

  6. 服务器处理请求:服务器接收到请求后,根据请求中的信息执行相应的处理逻辑。这可能涉及到服务器端的代码执行、数据库查询等操作。

  7. 返回响应:服务器处理完请求后,生成一个包含要返回给浏览器的资源的 HTTP 响应。响应中包含了状态码、响应头、响应体等信息。

  8. 接收响应:浏览器接收到服务器返回的响应,包括状态码、响应头和响应体等内容。

  9. 渲染页面:浏览器根据接收到的响应内容,对页面进行渲染。这包括解析 HTML、CSS 和 JavaScript,构建 DOM 树、渲染页面布局和执行 JavaScript 代码等。

  10. 显示页面:最终,浏览器将渲染好的页面显示给用户,并开始处理用户的交互事件。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-14 21:36:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-14 21:36:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-14 21:36:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-14 21:36:02       20 阅读

热门阅读

  1. 优化SQL查询的策略和技巧 - AI提供

    2024-06-14 21:36:02       11 阅读
  2. 从 GPT2 到 ChatGPT

    2024-06-14 21:36:02       5 阅读
  3. sqlcoder:7b sqlcoder:15b sqlcoder:70b 有什么区别呢?

    2024-06-14 21:36:02       9 阅读
  4. Android RecyclerView使用

    2024-06-14 21:36:02       8 阅读
  5. C#面:抽象类和接口有什么异同

    2024-06-14 21:36:02       7 阅读
  6. git原理解释,windows 10 / ubuntu 24.04 安装使用 github

    2024-06-14 21:36:02       6 阅读