【问题标题】:what does setting Cache-Control: max-age=20 in request header do?在请求标头中设置 Cache-Control: max-age=20 有什么作用?
【发布时间】:2021-11-19 11:56:24
【问题描述】:

当我在请求标头中设置Cache-Control: 'max-age=0' 时,此请求将重新验证其缓存条目(例如,使用 If-Not-Modified 标头)一直到源服务器。如果回复为 304(未修改),则可以使用缓存的实体。

当我在响应头中设置Cache-Control: 'max-age=20'时,它的意思是在20秒内,同一地址的请求将使用缓存。

但是如果我在请求头中设置Cache-Control: 'max-age=20',它的效果不如前者,所以我想知道当我在请求头中设置 max-age=xxx(xxx != 0) 时会发生什么?

【问题讨论】:

标签: http-headers cache-control


【解决方案1】:

规范告诉我们:

max-age 请求指令表明客户端是 不愿接受年龄大于 指定的秒数。

所以max-age=20 表示缓存不应返回超过 20 秒的缓存响应。

这里的关键区别在于 客户端 选择资源的所需新鲜时间,而在通常情况下,它是 服务器 确定。

【讨论】:

  • 感谢您的回答。那么如果我在请求头中设置Cache-Control: 'max-age=5',同时在响应头中设置Cache-Control: 'max-age=20',是否意味着5秒后我无法接收缓存?
  • 但是当我试验那个时,我发现我仍然可以收到20秒的缓存
  • @planB:我不确定您所说的“接收缓存”是什么意思。在任何情况下,请求标头都适用于缓存中已经存在的条目。响应中的缓存头是不相关的,它们只会应用于未来的请求。
猜你喜欢
  • 1970-01-01
  • 2011-12-08
  • 2020-08-11
  • 2021-04-15
  • 1970-01-01
  • 2017-07-27
  • 2023-03-12
  • 2018-10-06
  • 2020-03-08
相关资源
最近更新 更多