写点什么

Removing HTTP/2 Server Push from Chrome

作者:Yestodorrow
  • 2023-03-21
    北京
  • 本文字数:975 字

    阅读完需:约 3 分钟

背景介绍

server push 是 http2.0 当时一个比较亮眼的点,18 年就尝试过。现在已经是 2023 年了,不知道目前 server push 在国内的普及率是多少,是否过半?如果小伙伴打算尝试 server push,那这篇文章,将是一篇劝退文,因为,此次我带来了谷歌有关在将来去掉 server push 的消息。

正文

发表于 2022 年 8 月 18 日,更新于 2022 年 10 月 14 日

作者:Barry Pollard( Google web 性能开发者)

接着之前内容继续,在 chrome 106 和其他 chromium 版本的浏览器的后续版本,默认将不再支持 HTTP/2 的 server push 功能。

为什么取消

HTTP/2 让网站能提前发送页面资源,而不再需要等到需要时再发送。但是正如 Jake Archibald 之前文章写到的,这个特性有很多问题,而且很难达到收益。目前看只有1.25%的使用率。



HTTP/2 Server Push 的功能分析报告(Chrome, Akamai)有很多,都没有看到清晰的性能收益,甚至在很多案例中是性能下降。

在 HTTP/3 中没有采用 server push,尽管在标准中采纳了。对于很多使用 http3 的网站来说,并非采用 push 功能。最近再次分析得出,我们发现 1.25%降到了 0.7%。

HTTP/2 Server Push 的替代方案

103 Early Hints 本身错误少,优势多,不亚于 server push。和 server 推送资源的方式不同的是,103 early hints 发送“hints”给浏览器,能立刻让浏览器享受益处。这相当于把决定是否加载和何时加载的决定权交给了浏览器,而且浏览器还能根据 http 缓存决定是否使用缓存。

预拉取关键资源是另一个方案,允许网站和浏览器在页面加载时就共同提前预先加载关键资源。当然,前提还是必须首先加载网页本身,所以速度肯定不如 server push 快,也比不上 early hints。但也有好处,不会延迟关键的页面资源,同时也可以配合上其他方案。

注意: 尝试尽早加载资源的方案可能导致性能下降,应该适量使用。浏览器擅长做出最佳选择,但是在一些案例也有一小点好处,注意好处只是“一小点”。

结论

web 应该尝试新事物,对于不适用的也要丢弃。尽管推送听起来很强大,但现实很骨感。不过,我们从中学到很多东西,比如 103 的 early hint。

参考链接

总结

以上便是翻译的内容,web 时代强烈依赖网络,h2 的 server push 曾带来一丝光亮,马上又退去。不过 br 和 h3 也很值得期待。

发布于: 刚刚阅读数: 3
用户头像

Yestodorrow

关注

还未添加个人签名 2017-10-19 加入

还未添加个人简介

评论

发布
暂无评论
Removing HTTP/2 Server Push from Chrome_Yestodorrow_InfoQ写作社区