我正在尝试了解cache-control
http标头的工作原理。
cache-control
标头可以包含no-cache
值。我已经检查了w3c
中的定义并且说:
如果
no-cache
指令未指定字段名称,则指定缓存 不得使用响应来满足后续请求 使用原始服务器成功重新验证。
它告诉no-cache
值将触发每个请求的验证。
我想知道的是,什么是cache validation
以及它在http协议中做了什么?
感谢你的帮助。现在我理解验证意味着检查缓存是否包含来自服务器的最新内容。
我的进一步问题是no-cache将解决的问题。请提供一些方案,比如在http标头中应用no-cache之后,将修复哪些安全问题。
谢谢你们
答案 0 :(得分:0)
no-cache指令不用于安全目的。安全性定义在规则中,这些规则定义了不允许缓存CDN /代理服务器的哪些数据/资源。因此,如果需要安全性,则客户端/服务器应使用no-store指令。看下:
当客户机准备好接受来自缓存的资源时,只要服务器确认已缓存的资源是最新的(新鲜的),便使用no-cache指令。 proxy / cdn可以使用两种方法来重新验证资源的新鲜度:
1)如果客户端发送了ETAG值,则proxy / cdn可以在If-None-Match标头下将其转发到服务器。如果服务器以“ 304 Not Modified”(304未修改)作为响应,则缓存的资源可以新鲜使用。
2)使用If-Modified-Since标头和上次从服务器下载资源时收到的日期值(可以在服务器上次响应的Last-Modified标头下找到)。