从输入URL到页面呈现

261 阅读2分钟

1.构建请求

首先,浏览器构建请求行信息,构建好后,浏览器准备发起网络请求。

2.查找缓存

在真正发起网络请求之前,浏览器会先在浏览器缓存中查询是否有要请求的文件。当浏览器发现请求的资源已经在浏览器缓存中存有副本,它会拦截请求,返回该资源的副本,并直接结束请求,而不会再去源服务器重新下载。当然,如果缓存查找失败,就会进入网络请求过程了。

3.DNS解析

由于我们输入的是域名,而数据包是通过IP地址传给对方的。因此我们需要得到域名对应的IP地址。这个过程需要依赖一个服务系统,这个系统将域名和IP一一映射,我们将这个系统就叫做DNS(域名系统)。得到具体 IP 的过程就是DNS解析。

4.等待 TCP 队列

Chrome 有个机制,同一个域名同时最多只能建立6个TCP连接,如果在同一个域名下同时有 10 个请求发生,那么其中4个请求会进入排队等待状态,直至进行中的请求完成。当然,如果当前请求数量少于 6,会直接进入下一步,建立 TCP 连接。

5.建立 TCP 连接

浏览器通过 TCP 与服务器建立连接。

6.发送 HTTP 请求

一旦建立了 TCP 连接,浏览器就可以和服务器进行通信了。而HTTP中的数据正是在这个通信过程中传输的。

7.网络响应

HTTP 请求到达服务器,服务器进行对应的处理。最后要把数据传给浏览器,也就是返回网络响应。