当浏览器地址栏的 URL 发生变化时,通常会经历以下步骤:
-
用户输入或导航操作:用户在地址栏中输入新的 URL 或者通过点击链接、前进/后退按钮等进行导航操作。
-
URL 解析:浏览器会解析新的 URL,并将其拆分为不同的组成部分,包括协议(例如 http://)、域名、路径、查询参数等。
-
DNS 解析:如果 URL 中包含了域名部分,浏览器会将该域名发送给 DNS 服务器进行解析,以获取对应的 IP 地址。
-
建立连接:浏览器使用解析得到的 IP 地址建立与目标服务器的 TCP 连接。这个过程经历了 TCP 的三次握手,确保双方能够正常通信。
-
发送 HTTP 请求:浏览器向服务器发送一个 HTTP 请求,请求中包含了要获取的资源的信息,如请求方法(GET、POST 等)、路径、请求头、请求体等。
-
服务器处理请求:服务器接收到请求后,根据请求中的信息执行相应的处理逻辑。这可能涉及到服务器端的代码执行、数据库查询等操作。
-
返回响应:服务器处理完请求后,生成一个包含要返回给浏览器的资源的 HTTP 响应。响应中包含了状态码、响应头、响应体等信息。
-
接收响应:浏览器接收到服务器返回的响应,包括状态码、响应头和响应体等内容。
-
渲染页面:浏览器根据接收到的响应内容,对页面进行渲染。这包括解析 HTML、CSS 和 JavaScript,构建 DOM 树、渲染页面布局和执行 JavaScript 代码等。
-
显示页面:最终,浏览器将渲染好的页面显示给用户,并开始处理用户的交互事件。