Chrome Network Timings 的真正含义是什么?什么会影响每个时序长度?

What does Chrome Network Timings really mean and what does affects each timing length?

我正在查看 chrome 开发工具 #resource network timing 来检测必须改进的请求。在 link 之前,每个时间都有一个定义,但我不明白幕后正在采取哪些过程会影响时间长度。

下面是3张不同的图片,这是我的理解,如果我错了请纠正我。

停顿: 为什么有时请求会停顿 1.17 秒,而其他人则更少?

请求已发送:这是我们的请求到达服务器所用的时间

TTFB:服务器响应第一个数据字节所用的时间

内容下载:整个响应到达客户端的时间

谢谢

网络是一个变化很大的领域。这些有很多不同的数字,它们在不同的位置甚至不同类型的内容的相同位置之间变化。

以下是您需要更多了解的领域的更多详细信息:

停止: 这取决于网络堆栈中发生的其他事情。一件事根本无法停止,而其他请求可能会停止,因为到同一位置的 6 个连接已经打开。停顿的原因有很多,但最大连接数限制是解释为什么会发生的一种简单方法。

停滞状态意味着,我们现在无法发送请求,需要等待一些原因。一般来说,这没什么大不了的。如果您经常看到它并且您 使用 HTTP2 协议,那么您应该考虑尽量减少从给定位置提取的资源数量。如果您使用的是 HTTP2,那么不必担心太多,因为它以不同的方式处理大量请求。

环顾四周,看看有多少请求发往了一个域。您可以使用筛选框 trim 向下查看。如果您有很多请求发送到同一个域,那么很可能会达到连接限制。 域分片 是使用 HTTP 1.1 处理此问题的一种方法,但对于 HTTP 2,它是一种反模式并且会损害性能。

如果您没有达到最大连接数限制,那么问题就更微妙了,需要更实际的调试方法来弄清楚发生了什么。

已发送请求:这不是到达服务器的时间,而是第一个字节的时间。 All request sent 的意思是请求被发送,网络堆栈花费了 X 时间来执行它。

您无法加快速度,更多的是用于信息和内部调试目的。

Time to First Byte (TTFB): 这是发送的请求到达目的地的总时间,然后是目的地处理请求的总时间,最后是遍历网络返回客户端的响应。

高 TTFB 揭示了两个问题之一。第一个是客户端和服务器之间的网络连接不良。因此数据到达服务器并返回的速度很慢。第二个原因是服务器处理请求速度慢。这是因为硬件较弱或应用程序 运行 速度慢。或者,这两个问题可以同时存在。

要解决高 TTFB,请首先切断尽可能多的网络。理想情况下,将应用程序本地托管在低资源虚拟机上,然后查看是否仍然存在较大的 TTFB。如果有,则应用程序需要针对响应速度进行优化。如果本地 TTFB 超低,那么您的客户端和服务器之间的网络就是问题所在。有多种方法可以解决这个问题,我不会深入讨论,因为它本身就是一个专业领域。研究网络优化,甚至尝试移动主机并查看您的服务器提供商网络是否有问题。

记住整个服务器堆栈在这里发挥作用。因此,如果 nginx 或 apache 配置不当,或者你的数据库响应时间过长,或者你的缓存有问题,那么这些都会导致延迟。它们也很难在本地检测到,因为您的本地服务器的配置可能与远程堆栈不同。

内容下载:这是从 TTFB 解析到客户端从服务器获取其余内容的总时间。这应该很短,除非您正在下载一个大文件。你应该看看文件大小,网络情况,再判断大概需要多长时间。