微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 为什么第一次网络通话比后续网络通话需要更多时间?

我试图理解这种行为,其中第一次网络呼叫占用后续网络的两倍以上.我知道DNS解析不会超过5-50毫秒,它只在初始调用中发生.考虑到这些信息,第一次通话和后续通话所用的时间应该没有多大差别.

我已经在单独的隐身窗口中使用一些着名的URL测试了这种行为,每个禁用缓存并附加了一些屏幕截图以支持我在下面的观察.任何人都可以帮我理解这种行为吗?

注意:读数采用全速互联网连接

提前致谢

enter image description here

enter image description here

enter image description here

enter image description here

解决方法:

经过几次实验,我发现内容下载(browser request steps)部分请求速度提升了1.5-2倍
这看起来像是TCP Slow Start algorithm的原因

如上所述:

modern browsers either open multiple connections simultaneously or reuse one connection for all files requested from a particular web server

这可能是第一次请求比其他请求慢的原因

另外,@ Vishal Vijay做了一个很好的补充:

与服务器进行初始连接握手需要时间(DNS查找初始连接SSL).浏览器正在为HTTP请求创建持久连接并将其保持打开状态一段时间.如果在该时间内针对同一域发出任何请求,则浏览器将尝试重用相同的连接以获得更快的响应.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐