合并HTTP请求 vs 并行HTTP请求,究竟谁更快?

作者 : 开心源码 本文共649个字,预计阅读时间需要2分钟 发布时间: 2022-05-12 共47人阅读

面试时,经常会问候选人一个问题:如何提高网页性能?

有些基础的人都会提到这么一条:减少/合并HTTP请求。

继续问:浏览器不是可以并行下载资源吗?将多个资源合并成一个资源,只用一个HTTP请求下载,难道要比使用多个HTTP请求并行下载没有合并过的多个资源速度更快?

候选人:……(至今,还没有遇到让我满意的答复)

减少HTTP请求,是雅虎前台性能优化35条军规的第1条,2006年雅虎提出了这35条军规,从那以后,就深深地影响到了一批又一批的前台开发者,即便在12年后的今天,影响力仍旧不减…..

但是,雅虎军规中还有1条是:拆分资源以最大化利使用浏览器并行下载的能力。现在问题就来了,减少HTTP请求,但网页所需的资源并不能减少(否则网页就不再是之前的网页了),所以减少HTTP请求,主要是通过合并资源来实现的,一边是建议合并资源,一边是建议拆分资源,显然是有冲突的地方,那么究竟该怎样做呢?网上有些文章也探讨过这个问题,但大多是停留在想当然的理论分析上,而且忽略了TCP传输机制的影响。今天,老干部就带大家一起使用试验+理论,仔细讨论下这个问题。


HTTP请求过程

一个HTTP请求的主要过程是:

DNS解析(T1) -> 建立TCP连接(T2) -> 发送请求(T3) -> 等待服务器返回首字节(TTFB)(T4) -> 接收数据(T5)。

如下图所示,是Chrome Devtools中显示的一个HTTP请求,显示了HTTP请求的主要阶段,注意,Queueing阶段是请求在浏览器队列中的排队时间,并不计入HTTP请求时间

合并HTTP请求 vs 并行HTTP请求,究竟谁更快?

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 合并HTTP请求 vs 并行HTTP请求,究竟谁更快?

发表回复