为什么浏览器不发送If-Modified-Since?

时间:2018-11-14 10:54:00

标签: http caching amazon-s3 browser-cache cloudflare

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

  • 我在我的域上拥有适当的证书
  • 我正在发送适当的响应头(至少我认为是这样,模糊的是带有s3 url的位置头):

enter image description here

更多信息:

  • 我们使用cloudflare中的http2.0,无论如何会影响到它?
  • 在我们的服务器上,我们仅使用nginx + php-fpm

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

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

在下一个请求上:

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

我想将其更改为:

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

在下一个请求上:

  1. 检查是否已修改标头
  2. 如果与当前日期的差小于72h(最大s3 url ttl)并且图像未更新(我们已经在数据库中更新了日期),则返回304。
  3. 否则请执行上面的操作。

甚至是随机的,有时每10或20个请求中就有1个,它工作正常,就像我有时有304个请求,但这确实很少见。

有什么主意吗?

0 个答案:

没有答案