为什么在请求标头(客户端到服务器)中发送Cache-Control属性?

Stu*_*ent 148 http http-headers

在阅读Cache-Control了HTTP标头的字段后,

据我所知,Cache-Control在HTTP响应报头(服务器到客户端)字段指定如何处理该响应的中间代理服务器/客户浏览器中的指令,通过发送不同的值Cache-Control字段:private,public,no-cache,或no-store在响应报头中.

但我不明白为什么我们需要Cache-Control在请求标头(客户端到服务器)中发送属性?

Dav*_*vid 129

Cache-Control: no-cache通常用于请求标头(从Web浏览器发送到服务器)以强制验证中间代理中的资源.如果客户端未将此请求发送到服务器,则中间代理将返回内容的副本(如果内容是新的(根据Expiremax-age字段未过期).Cache-Control指示这些代理重新验证副本,即使它是新鲜的.

  • 可能为时已晚,但除了其他用途之外?max-age字段是否用于任何目的? (7认同)
  • @JonHanna也许您在Chrome Developer工具中选中了"禁用缓存"?:d (6认同)
  • @rogerdpack 不,因为他们**确实**信任他们,所以他们发送他们**信任**的标头将很荣幸地表明他们有一些特殊的原因需要比大多数用途需要的更高的新鲜度。 (3认同)
  • @rogerdpack,如果您刚刚做了一些您知道会改变状态的事情并想要反映这一点,那么这将是一个经典案例。 (2认同)

bda*_*ash 14

客户端可以Cache-Control在请求中发送标头,以便从源服务器和请求路径上的任何中间代理服务器请求特定的缓存行为,例如重新验证.


Lou*_*oui 5

除了上述答案之外,
可能还有一个实现缓存链接的设置。在这种情况下,如果请求到达不满足的第一个缓存,它可能会转到进一步的链接缓存。

因此,为了始终从服务器获得响应,我们在请求标头中包含缓存控制。这将确保响应始终来自服务器。