当前位置: 首页 > 知识库问答 >
问题:

基于日期和年龄标头缓存响应

秦安怡
2023-03-14

我们看到一些行为,我们没有在OkHttp中缓存响应,最终每次都访问服务器。但是,响应在将来会有一个过期时间,所以理想情况下它将被缓存。

date: Sat, 16 Jan 2021 00:40:36 GMT
age: 6
expires: Sat, 16 Jan 2021 00:40:40 GMT
last-modified: Sat, 16 Jan 2021 00:40:30 GMT

从我对CacheStrategy的观察来看,问题是它将日期+年龄加在一起,以查看它是否超过了过期时间。在本例中,00:40:36+6=00:40:42>00:40:40,因此它最终不会被添加到缓存中。

因此,我认为理想情况下,要么响应日期等于last-modified(在本例中,时间为2021年1月16日00:40:30GMT),要么我们需要有一个自定义缓存策略来使用last-modified而不是日期进行这些计算。

如果有人对我是否做出了任何错误的假设有任何见解,或者上面的选择之一更可取,请让我知道。我已经查看了日期/年龄标题的一些规范,对我来说,在这种情况下它们应该是什么有点不清楚。

共有1个答案

强硕
2023-03-14

expires标头替换为设置最大年龄指令的缓存控制标头:

Cache-Control: max-age=86400

这将导致OkHttp将响应缓存24小时,而不管它是何时服务的。expires标头是有问题的,因为CloudFlare将其视为特定的过期时间,而不是持续时间。

 类似资料:
  • 我已将服务器响应配置为包含

  • 问题内容: 我在sql中有一个用户表,他们每个都有生日。我想将他们的出生日期转换为他们的年龄(仅年),例如日期:年龄:14,并将更改为年龄: 在这里,我想显示用户的日期: 问题答案: 功能:, MySQL > = 5.0.0 功能:,

  • 问题内容: 好的,因此我可以使用访问HTTP ajax响应标头 但似乎没有日期,尽管它在那里: 而代码只显示了这一点: 这是ajax调用: 有没有办法可以在响应头中获取日期? 问题答案: 这有帮助:

  • 问题内容: 如何计算人的年龄(基于dob列),并使用新值将一列添加到数据框中? 数据框如下所示: 我尝试执行以下操作: 但是,收到以下错误: TypeError:-:“ datetime.datetime”和“ str”的不受支持的操作数类型 问题答案: 产量 看来您的栏目前是字串。首先,将它们转换为using 。 该格式将最后两位数字转换为年份,但不幸的是假设的平均值为2052。由于这可能不是希

  • 当我没有发现任何关于将年龄转换为出生日期的内容时,我感到惊讶。关于将出生日期转换为年龄,有很多答案,但并非相反。 我有两位数(我能够将它们转换为任何数据类型,甚至转换为DateTime.date(python-格式))。如何将它们转换为完整的SQL日期。它必须current_date年龄(日期和月份对我来说不重要)。最好通过数据库而不是python来完成此操作。 DDL: p、 美国相关问题在My

  • 问题内容: 我应该如何在MySQL中存储出生日期,以便可以通过Cron Job轻松地每天更新每个人的年龄? 存储“年龄”和“生日”是否有意义,以便在进行涉及“年龄”的搜索时,我不必即时计算每个“年龄”并浪费CPU资源? 如果是这样,我应该如何1)存储生日,以及2)每天计算年龄? 我可以想象每天的cron脚本会首先过滤出其生日不是当前月份的用户,然后过滤出其生日不是当前日期的用户,然后将每个剩余用户