既然 HTTP 2.0 已经推出,那么像 asset bundle 这样的技巧还需要吗?

Since HTTP 2.0 is rolling out, are tricks like asset bundle still necessary?

我们如何知道有多少浏览器支持 HTTP 2.0?

How can we know how many browsers support HTTP 2.0?

A simple Wikipedia search will tell you. They cover at least 60% of the market 并且一旦您将不到 10% 的浏览器分开,可能会更多。对于仅仅一个月的标准配置来说,这已经很不错了。

这是人们期待已久的标准。它基于现有协议 SPDY,该协议已经过一些真实世界的审查。它提供了一些直接的性能提升,浏览器中的性能是王道。浏览器和服务器可能会迅速采用它。每个人都想要这个。没有人愿意让他们的竞争对手拥有如此显着的性能优势。

Since http 2.0 is rolling out, does tricks like asset bundle still be necessary?

HTTP/2 旨在解决 HTTP/1.1 存在的许多性能问题。应该不太需要将多个资产捆绑到一个 HTTP 请求中的技巧。

使用 HTTP/2 可以在单个连接中执行多个请求。 HTTP/2 服务器还可以在客户端请求之前向客户端推送额外的内容,允许它在单个请求中甚至在 HTML 下载和解析之前预加载页面资产。

This article has more details.

When can we move on to the future of technologies and stop those dirty optimizations designed mainly for HTTP 1?

三件事必须发生。

  • Chrome 必须默认打开他们的支持。

This will happen quickly。然后给一点时间让升级慢慢地传递给您的用户。

  • 你必须到处使用 HTTPS。

大多数浏览器目前只支持 HTTP/2 over TLS。我想每个人都希望 HTTP/2 只加密工作以迫使每个人保护他们的网站。有点像 carrot/stick、"you want better performance? Turn on basic security." 我认为浏览器制造商无论如何都会坚持 "encrypted only" 计划。促进安全网络符合他们的最大利益。

  • 您必须决定性能下降的用户百分比。

与 CSS 支持不同,HTTP/2 支持不会影响您的内容。它的好处主要是性能。您 不需要 HTTP/1.1 技巧。如果您删除它们,您的网站对于 HTTP/1.1 的外观和行为仍然相同。何时停止投入额外的维护工作取决于您。

像任何其他 hack 一样,希望您的 Web 框架能为您做这件事。如果您手动将图标拼接成单个图像,那您就错了。有各种各样的框架可以使这一切对您透明。

它也不一定是孤注一掷的事情。随着 HTTP/1.1 连接到您站点的百分比下降,您可以进行 cost/benefit 分析并开始删除 HTTP/1.1 优化,这些优化最麻烦,但收益最少。基本免费的,留着吧。

与任何其他网络协议一样,问题是人们升级的速度有多快?如今,大多数浏览器都会自动更新。移动用户、桌面 Firefox 和 Chrome 用户将快速升级。那是市场的 60-80%。

与往常一样,IE 是问题所在。虽然最新版本的 IE 已经支持 HTTP/2,但它仅在 Windows 10 中可用,甚至还没有出来。所有那些现有 Windows 用户可能永远不会升级。向后移植对 Windows 或 IE 的旧版本的支持不符合 Microsoft 的最佳利益。事实上,他们刚刚宣布 replacing IE。所以这可能是 20% 的网络人口永久落在后面。您网站的统计信息会有所不同。

政府、大学和公司等大型机构设施的升级速度也会很慢。不管他们在什么浏览器上进行了标准化,他们通常会禁用自动更新以更严格地控​​制他们的环境。如果这是您的很大一部分用户,您可能不愿意放弃 HTTP/1.1 多年的黑客攻击。

监控人们如何连接到您的网站,以及您希望为日益减少的用户部分优化它付出多少努力,将取决于您。答案是 "it depends on who your users are" 和 "whenever you decide you're ready".