在阅读了 HTTP 头的 Cache-Control字段之后,
Cache-Control
我知道 HTTP 响应头中的 Cache-Control字段(服务器到客户端)指定了中间代理服务器/客户端浏览器如何处理响应的指令,方法是在响应头中为 Cache-Control字段发送不同的值: private、 public、 no-cache或 no-store。
private
public
no-cache
no-store
但是我不明白为什么我们需要发送 Cache-Control作为请求头(客户端到服务器) ?
客户机可以在请求中发送 Cache-Control头,以便从原始服务器和请求路径上的任何中间代理服务器请求特定的缓存行为,如重新验证。
Cache-Control: no-cache通常用于请求头(从 Web 浏览器发送到服务器) ,以强制验证中间代理中的资源。 如果客户机没有向服务器发送这个请求,中间代理将返回一个新内容的副本(根据 Expire或 max-age字段,该内容还没有过期)。Cache-Control指示这些代理重新验证副本,即使它是新的。
Cache-Control: no-cache
Expire
max-age
除了上面的答案, 可能存在实现缓存链接的设置。在这种情况下,如果请求到达第一个不满足的缓存,它可能会转到进一步的链式缓存。
因此,为了始终从服务器获得响应,我们在请求头中包含缓存控制。这将确保响应始终来自服务器。