HTTP2客户端可以选择通过服务器推送接收哪些资源吗?

问题描述 投票:0回答:1

我有一个静态的网站,为了加快网站的加载速度,我想使用HTTP2服务器推送的方式将CSS推送给客户端。为了加快网站的加载速度,我想使用HTTP2服务器推送的方式将CSS推送给客户端。但是,我也担心移动客户端的带宽使用问题。

如果我指定了要推送给客户端的资源(例如使用 http2_push <some file> nginx中的),而客户端的缓存中已经有了这个资源,那么客户端可以要求不推送这个资源吗?还是服务器总是推送资源?

我读到 RFC 7540, sec. 8.2 - HTTP2 服务器推送但我只发现,客户端可以发送一个 RST_STREAM 请求来停止服务器推送。但是有没有办法让客户端选择被推送的资源?

http2 server-push
1个回答
1
投票

你可以设置一个cookie,服务器可以用它来决定是否推送。我这里有一个Apache的实现。https:/www.tunetheweb.comperformancehttp2http2-push

这并不理想,因为cookie可以独立于缓存被清除,但目前我们能做的最好的。

缓存摘要 有人提出了解决这个问题的办法,但是 停工 由于缺乏兴趣--主要是出于对隐私的担忧。

HTTP2推送未能达到预期,会导致性能下降而不是改进。通过资源提示进行预加载更干净,风险更小。它还可以与 103 早期提示状态码 - 虽然支持度也不高 看这个Chrome浏览器的问题 例如:

© www.soinside.com 2019 - 2024. All rights reserved.