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