SPDY 是不是需要资源捆绑以减少响应时间

Posted

技术标签:

【中文标题】SPDY 是不是需要资源捆绑以减少响应时间【英文标题】:Is resource bundling needed on SPDY to reduce response timesSPDY 是否需要资源捆绑以减少响应时间 【发布时间】:2015-07-27 08:00:07 【问题描述】:

这里我使用术语 bundling 来指代将 JS 和 CSS 资源连接在一起以减少 HTTP 请求的数量。 HTTP/2 解决了最初产生资源捆绑 Web 开发最佳实践的潜在问题(往返时间、资源获取阻塞)。但是,现在广泛部署的 SPDY 有多少与 HTTP/2 共享这些特征?

如果我使用像 CloudFlare 这样的 SPDY 感知 CDN,如果我不需要关心旧客户端,那么捆绑资源还有什么意义吗?

请注意,资源转换可能与捆绑分开进行,这个问题主要是关于响应时间,而不是关于编译代码。

【问题讨论】:

【参考方案1】:

与 HTTP/1.1 客户端相比,HTTP/2(及其前身 SPDY,现已被淘汰)客户端可以向服务器执行更多的并发请求。

HTTP/1.1 一次只能处理 4 到 8 个并发请求,而 HTTP/2 通常最多可以处理 100 个。

资源的捆绑基本上是解决此 HTTP/1.1 限制的一种方法,而 HTTP/2 不再严格需要它。

我能想到继续捆绑的唯一原因可能是为了提高资源的 gzip 压缩效率(但这应该衡量以量化收益 - 如果有的话,它们可能真的很小) 或其他应用原因。

如果您不关心旧客户端,在典型情况下,您可以在使用启用 HTTP/2 的 CDN 时避免捆绑资源。

这应该可以简化您的 Web 应用程序的构建(不再需要捆绑阶段)而不会损失响应时间,但唯一可以确定的方法是衡量您的具体情况。

【讨论】:

以上是关于SPDY 是不是需要资源捆绑以减少响应时间的主要内容,如果未能解决你的问题,请参考以下文章

当支持 SPDY 的浏览器收到 HTTP2 (H2) 响应时会发生啥?

okhttp请求

如何减少laravel中的数据大小以进行ajax响应?

如何检测服务器是不是正在使用 SPDY

expressjs http 不适用于 spdy

如果不需要更新,用 304 响应非条件 PUT 是不是正确?