我们看浏览器发起请求的各个指标。
进入队列时间(Queued at): 请求进入任务队列的时间。
开始时间(Started at): 请求被开始处理的时间。资源调度的时间。
资源调度(Resource Scheduling)
正在排队(Queueing): 浏览器将请求添加到任务队列,到实际开始处理的时间间隔。
开始连接(Connection Start)
已停止(Stalled): 浏览器的网络线程发出请求,到IO线程可以进行请求发出的时间。
DNS查找(DNS Lookup): DNS域名查找时间。
初始连接(Initial connection): 建立TCP连接的时间。客户端从发请求开始到TCP握手结束这一段,包括DNS查询+Proxy时间+TCP握手时间。
SSL: 添加SSL(https)证书时间。
请求/响应(Request/Response)
已发送请求(Request sent): 发送HTTP请求的时间(从第一个bit到最后一个bit)。
正在等待服务器响应(Waiting (TTFB)): 浏览器请求发出后,到收到响应的第一个字节所花费的时间。
下载内容(Content Download): 收到响应的第一个字节,到接受完最后一个字节的时间。
备注:
浏览器任务队列:我们知道渲染进程内部的大多数任务都是在主线程上执行的,要让这些任务能够在主线程上有条不紊地运行,就需要引入任务队列。
疑问
有个疑问,浏览器请求并发数,第7个请求会比前6个请求进入任务队列慢?
前6个请求进入队列也是依次进入的,第7个请求进入队列会比前6个请求慢。
<script src="./index1.js"></script>
<script src="./index2.js"></script>
<script src="./index3.js"></script>
<script src="./index4.js"></script>
<script src="./index5.js"></script>
<script src="./index6.js"></script>
<script src="./index7.js"></script>
参考资料
https://zhuanlan.zhihu.com/p/489168675
https://zhuanlan.zhihu.com/p/575031788
https://www.php1.cn/detail/Chrome_LanQiYouH_41bb7c4e.html
https://juejin.cn/post/7094467569599889444