返回

揭秘浏览器获取资源的奥秘:从URL到页面呈现的幕后之旅

前端

当我们在浏览器的地址栏中输入 URL,或者点击一个链接时,实质上就是对浏览器(客户端)下达一道指令去指定的位置(服务器)获得我们想要的资源。获取资源是浏览器展示网页的第一步工作。获取资源是一个过程,这个过程可以拆解成如下几个步骤:

第一步:解析 URL

当浏览器接收到 URL 后,浏览器首先要修正 URL。如果 URL 中没有指定协议(如 或 https://),浏览器会自动添加协议头。接着,浏览器会将 URL 解析成各个部分,包括协议、主机名、端口、路径和查询字符串。

第二步:DNS 解析

解析完 URL 后,浏览器需要将主机名解析成对应的 IP 地址。这个过程由 DNS 服务器完成。DNS 服务器是一种将域名映射到 IP 地址的服务器。浏览器会向 DNS 服务器发送一个请求,请求将主机名解析成 IP 地址。DNS 服务器收到请求后,会将解析结果返回给浏览器。

第三步:建立 TCP 连接

获得 IP 地址后,浏览器会与服务器建立 TCP 连接。TCP 连接是一种可靠的、面向连接的传输协议。浏览器会向服务器发送一个连接请求,服务器收到请求后,会建立一个连接。

第四步:发送 HTTP 请求

建立好 TCP 连接后,浏览器会向服务器发送 HTTP 请求。HTTP 请求是一个请求-响应协议,用于在客户端和服务器之间交换数据。HTTP 请求中包含了请求方法(如 GET 或 POST)、请求头(如 Host 和 User-Agent)和请求体(如表单数据)。

第五步:服务器处理请求

服务器收到 HTTP 请求后,会对请求进行处理。服务器会根据请求方法和请求头来决定如何处理请求。如果请求方法是 GET,服务器会将请求的资源返回给浏览器。如果请求方法是 POST,服务器会将请求体中的数据存储起来,然后将请求的资源返回给浏览器。

第六步:浏览器下载资源

服务器将资源返回给浏览器后,浏览器会开始下载资源。浏览器会将资源存储在本地硬盘上。如果资源是文本文件,浏览器会将资源加载到内存中。如果资源是二进制文件,浏览器会将资源存储在硬盘上。

第七步:浏览器缓存资源

为了提高加载速度,浏览器会将下载的资源缓存起来。当浏览器再次需要加载相同的资源时,浏览器会直接从缓存中加载资源,而不是再次从服务器下载资源。

第八步:构建 DOM 树

浏览器下载完所有资源后,会开始构建 DOM 树。DOM 树是一种表示网页结构的树形结构。DOM 树的根节点是 标签,子节点是 和 标签。

第九步:渲染引擎渲染 DOM 树

浏览器构建好 DOM 树后,会将 DOM 树传递给渲染引擎。渲染引擎是一种将 DOM 树转换为像素的程序。渲染引擎会遍历 DOM 树,将每个节点的样式信息应用到节点上,然后将节点渲染成像素。

第十步:页面呈现

渲染引擎将 DOM 树渲染成像素后,浏览器会将像素显示在屏幕上。此时,页面就呈现出来了。

以上就是从 URL 输入到页面呈现的整个过程。这个过程虽然复杂,但浏览器会自动完成这一切。我们只需要在地址栏中输入 URL,或者点击一个链接,浏览器就会自动将网页呈现出来。