我感到困惑的是,我从我们的S3存储桶请求一个max-age设置为1年的视频文件。我有时会得到304,但更常见的是其后有200个回复。我试图在IE11中做到这一点。
以下是304的请求和回复:
我还用查尔斯代理拍摄了这些请求的快照(在另一个时刻):
以下是200的请求和回复:
以下是查尔斯代理所见的请求和回复:
请求由首先添加的DOM元素(似乎是304)触发,然后在Javascript(这些似乎是200' s)中从头开始再次定期播放。 / p>
所以问题是:我在设置中可能错过了什么或者阻止这样的资源被缓存的任何东西?
感谢。
P.S。
答案 0 :(得分:0)
我终于找到了导致这种奇怪的缓存行为的原因。例如,它只发生在Internet Explorer中(我仅测试了版本11)。在我解释之前,有一点背景......
我们的主要应用程序在主域上运行,我们称之为www.foo.com。 Ajax请求是在ajax.foo.com上的不同应用程序实例上完成的。我们的服务经销商在自己的域名下运行主域名,例如www.bar.com。他们仍然使用常规的Ajax域ajax.foo.com(不确定这是否相关,但我认为值得一提)。
我发现,当应用程序从主域www.foo.bar启动时,来自S3的所有视频都会被正确缓存。但是一旦我们从经销商域运行主应用程序,缓存就不会再发生了。请参阅下面的屏幕截图。
我仍然对S3资产缓存对主域名的依赖感到十分困惑。我们还没有发现任何根本原因。所以我们决定寻找适用于我们的解决方法:经销商只需打开一个包含iframe的网页即可启动应用程序,该iframe启动常规主域www.foo.com上的实际应用程序,缓存正常。这解决了我们的问题,虽然我没有找到并且解决了实际原因的不良品味。
转销商域上的缓存行为
注意所有带有响应200的额外请求和额外下载的卷。
主域缓存行为
请注意,随着时间的推移,没有任何额外的资源请求