服务器端更改为禁用Firefox Race Cache with Network(RCWN)



我知道在我的Firefox副本中禁用RCWN是可能的,但我正在努力寻找服务器端是否有办法告诉世界上所有的Firefox不要对特定资源使用RCWN?

我们的应用程序使用云文件存储,我们会收取网络流量费用。我们已经将服务器配置为发送适当的缓存头,这样浏览器只会下载一次图像(可能非常大(,然后从缓存中加载,这样当有人在我们的网站上重新加载特定页面时,我们就不会一次又一次地被收费。

这在Chrome中运行得很好,但Firefox有一个名为Race Cache With Network的功能。RCWN允许Firefox尝试从缓存加载,但同时从网络加载,然后哪一个先完成是赢家。但这意味着,每个拥有FF的用户都会不断地重新下载这些大图像,即使它们被缓存了,这意味着我们必须为网络流量付费,即使他们有一个非常好的图像缓存。

我认为缓存可以比网络更快地加载22MB的png文件,但FF检查员表示,在比赛期间加载仍需要大约8秒,网络下载获胜。即使网络下载丢失到缓存中,它仍然在下载大部分或全部图像。

我们是否可以添加任何http响应头来告诉FF不要在某些资源中使用RCWN?

下面是我们现在发回的标题示例:

Content-Type: image/png 
Expires: Sat, 06 Jul 2030 21:06:51 GMT 
Last-Modified: Tue, 07 Jul 2020 05:21:42 GMT 
Pragma: cache 
Cache-Control: max-age=315360000, private 
Content-Disposition: inline; filename="bob-woodward-book-trade-deficits-lodestar.png" 

理想情况下,Firefox开发人员会过来为我们所有人提供一个真正明确的答案。不过,在仔细研究了一些源代码之后,我非常确定答案是";否";。(我想这并不奇怪,但可能有点令人失望。(

除了源代码之外,到处都可以找到有用的金块,包括2017年的这些幻灯片,这些幻灯片解释了创建RCWN的动机:https://slides.com/valentingosu/race-cache-with-network-2017

(附言:我自己深入研究这一问题的动机与几天前我自己的问题有关。从目前为止我所看到的一切来看,我的初步结论是Firefox中的缓存系统存在一些相当根本的性能问题。当然,要比当前的代码做得更好可能非常困难!(

最新更新