http - 为什么浏览器不发送 If-Modified-Since?
问题描述
我试图检查已经存在的问题和答案,但找不到我的主题的答案。我检查的事情:
- 我的域上有适当的证书
- 我正在发送正确的响应标头(至少我认为是这样,模糊的是带有 s3 url 的位置标头):
更多信息:
- 我们使用来自cloudflare的http2.0,它会影响这个吗?
- 在我们的服务器上,我们只使用 nginx+php-fpm
究竟是什么场景 - 我们使用服务器上发布请求的参数生成缩小图像并将其保存在 S3 上。我想缓存这些请求,Last-Modified
这样浏览器就不会发出不必要的请求,所以现在看起来像这样:
- 使用适当的参数(如图像大小等)请求我们的服务器,构建某种对象键以保存到 s3
- 调整它的大小,将调整大小的图像上传到 S3。
- 返回图片
在接下来的请求中:
- 请求我们的服务器,再次构建密钥
- 检查它是否存在于 S3 上,如果存在,则返回仅重定向到 s3 url。
- 如果没有,则重新调整大小并再次上传并返回图像
我想将其更改为:
- 使用适当的参数(如图像大小等)请求我们的服务器,构建某种用于保存的密钥
- 调整大小,如果需要,将调整大小的图像上传到 S3
- 返回图像或使用最后修改的标头重定向到 s3。
在接下来的请求中:
- 检查 if-modified-since 标头
- 如果与当前日期的差异小于 72 小时(最大 s3 url ttl)并且图像未更新(我们已更新数据库上的日期),则返回 304。
- 如果没有,请执行上述操作。
更随机的是,有时每 10 个或 20 个请求中就有 1 个正常工作,就像我有时有 304 个请求,但这种情况非常罕见。
任何想法?
解决方案
推荐阅读
- javascript - 单击按钮时,在 JavaScript 中创建具有唯一 ID 的动态下拉列表
- r - R中数据框中所有列的乘积
- salesforce - 在 Salesforce 中,以编程方式更改联系人所有者并通知用户(通过电子邮件)更改的最简单方法是什么?
- smartcard - 如何验证智能卡的制造商?
- java - Java Spring RestController 无法实现自定义接口
- r - 以交替顺序 Cbind 数据帧
- sql-server - 如何按使用 Windows 功能进行付款的每个部分的最短日期对付款的每个部分进行分组
- c++ - 在 32 位环境中调用 ___tls_get_addr 是否危险?
- azure - 将表从 Power BI Premium 导入 Azure Analysis Services 时出错
- r - 在R中循环一组数字生成命令