Removing HTTP/2 Server Push from Chrome

简介: server push是http2.0当时一个比较亮眼的点,现在已经是2023年了,如果小伙伴打算尝试,请果断放弃

背景介绍

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的功能分析报告(ChromeAkamai)有很多,都没有看到清晰的性能收益,甚至在很多案例中是性能下降。

在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也很值得期待。

目录
相关文章
|
5月前
|
应用服务中间件 nginx
百度搜索:蓝易云【HTTP请求是如何关联Nginx server{}块的?】
总结来说,Nginx中的 `server{}`块用于关联HTTP请求和虚拟主机,通过配置不同的 `server{}`块,可以实现多个域名或IP地址的请求分发和处理。这样,Nginx可以根据不同的请求来提供不同的服务和内容。
60 0
|
2月前
|
缓存 运维 Serverless
函数计算产品使用问题之怎么优化HTTP Server的启动速度
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
2月前
|
Python
【Azure 应用服务】Azure Function HTTP Trigger 遇见奇妙的500 Internal Server Error: Failed to forward request to http://169.254.130.x
【Azure 应用服务】Azure Function HTTP Trigger 遇见奇妙的500 Internal Server Error: Failed to forward request to http://169.254.130.x
|
4月前
|
网络协议 PHP
Swoole 源码分析之 Http Server 模块
想要了解到 `Http Server` 的全貌,其实只要把那张整体的实现图看懂就足以了。但是,如果想要有足够的深度,那么就还需要深入 `Swoole` 的源代码中,就着源码自行分析一遍。同时,也希望这一次的分析,能够给大家带来对 `Swoole` 更多的一些了解。并不要求要深刻的掌握,因为,很多的事情都不可能一蹴而就。从自己的实力出发,勿忘初心。
72 0
Swoole 源码分析之 Http Server 模块
|
4月前
|
小程序
Failed to load local image resource Xx the server responded with a status of of 500 (HTTP/1.1 500)
Failed to load local image resource Xx the server responded with a status of of 500 (HTTP/1.1 500)
101 4
|
5月前
|
开发框架 .NET 数据库连接
解决HTTP错误500.19 - internal server error -内部服务器错误的终极指南
解决HTTP错误500.19 - internal server error -内部服务器错误的终极指南
2475 0
|
5月前
|
应用服务中间件 网络安全 nginx
Client sent an HTTP request to an HTTPS server
Client sent an HTTP request to an HTTPS server
615 0
|
5月前
【web server】HTTP协议如何解析or封装
【web server】HTTP协议如何解析or封装
|
11月前
|
XML 数据格式
svn报错-ra_serf: The server sent a truncated HTTP response body.
svn报错-ra_serf: The server sent a truncated HTTP response body.
380 1
|
11月前
|
Docker 容器
http: server gave HTTP response to HTTPS client解决方案
http: server gave HTTP response to HTTPS client解决方案
704 0

热门文章

最新文章

下一篇
无影云桌面