【问题标题】:Browser not reading from cache Amazon S3 files浏览器未从缓存 Amazon S3 文件中读取
【发布时间】:2016-11-17 21:19:35
【问题描述】:

我已将 Cache-Control=max-age=315569520 & Expires 设置为 10 年后。

浏览器仍然没有从缓存中读取文件并向 S3 发出 GET 请求。作为响应,收到了 304,但我的 S3 GET 计数因此而增加。

请建议为 S3 文件设置缓存的正确方法

【问题讨论】:

  • Expires 已弃用且不必要。尝试不使用它...然后为Cache-Control: max-age=... 尝试一个更合理的值,例如 86400,看看浏览器是否会丢弃该值,就好像它太大而不能被认为是正确的一样。此外,请提及浏览器和版本,以便其他人可以尝试复制您所看到的行为。
  • 迈克尔您的建议无效。我在最新的 Chrome、Opera 和 Safari 上试过这个。它在 Firefox 上运行良好。是否与 Chrome 中的 Request 标头中的 Cache-Control=0 和 Safari 中的 Cache=No 有关?
  • 验证这不是您的测试方法的产物。浏览器行为是一个移动的目标,但this answer 可能会深入了解浏览器何时可以发送If-Modified-Since 请求缓存内容(在浏览器会话期间首次触摸?重新加载?),何时不会。据我估计,这从根本上说不是 S3 特定的问题,而是浏览器行为之一,并且给定来自 S3 以外的服务器的相同响应,浏览器行为也应该相同。

标签: amazon-s3


【解决方案1】:

当通过地址栏请求img资源时,Chrome和Opera在Request header中发送Cache-Control=0,Safari发送Cache=No。因为这个浏览器不会从缓存中获取图像。

Firefox 不发送此类标头。

但是当通过 img src 标签请求相同的 url 时,所有浏览器都尊重缓存控制,并且在他们的请求中永远不会发送上面的标头

【讨论】:

    猜你喜欢
    • 2012-08-01
    • 2014-02-23
    • 2021-08-26
    • 1970-01-01
    • 2011-02-15
    • 2018-05-26
    • 2018-12-21
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多