首页 > 解决方案 > 为什么浏览器不发送 If-Modified-Since?

问题描述

我试图检查已经存在的问题和答案,但找不到我的主题的答案。我检查的事情:

在此处输入图像描述

更多信息:

究竟是什么场景 - 我们使用服务器上发布请求的参数生成缩小图像并将其保存在 S3 上。我想缓存这些请求,Last-Modified这样浏览器就不会发出不必要的请求,所以现在看起来像这样:

  1. 使用适当的参数(如图像大小等)请求我们的服务器,构建某种对象键以保存到 s3
  2. 调整它的大小,将调整大小的图像上传到 S3。
  3. 返回图片

在接下来的请求中:

  1. 请求我们的服务器,再次构建密钥
  2. 检查它是否存在于 S3 上,如果存在,则返回仅重定向到 s3 url。
  3. 如果没有,则重新调整大小并再次上传并返回图像

我想将其更改为:

  1. 使用适当的参数(如图像大小等)请求我们的服务器,构建某种用于保存的密钥
  2. 调整大小,如果需要,将调整大小的图像上传到 S3
  3. 返回图像或使用最后修改的标头重定向到 s3。

在接下来的请求中:

  1. 检查 if-modified-since 标头
  2. 如果与当前日期的差异小于 72 小时(最大 s3 url ttl)并且图像未更新(我们已更新数据库上的日期),则返回 304。
  3. 如果没有,请执行上述操作。

更随机的是,有时每 10 个或 20 个请求中就有 1 个正常工作,就像我有时有 304 个请求,但这种情况非常罕见。

任何想法?

标签: httpcachingamazon-s3browser-cachecloudflare

解决方案


推荐阅读