那是对的.它由HTTP Cache-Control和Expires标头控制.
第一个基本上告诉客户端缓存策略.第二个基本上告诉客户端缓存策略的到期时间(即在获得新响应和/或丢弃缓存响应之前遵循缓存策略多长时间).
Web服务器通常会发送一组默认的标头.您可以使用header()函数在服务器配置中永久设置/覆盖这些标头,也可以基于请求.以下示例指示客户端永远不会缓存响应.
header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');
Run Code Online (Sandbox Code Playgroud)
所述Pragma报头是有保证与旧HTTP 1.0客户端不支持了兼容性Cache-Control,但(这是在HTTP 1.1中引入).
当缓存已过期且缓存的响应也包含Last-Modified和/或ETag标头时,客户端可以GET使用If-Modified-Since和/或触发条件请求If-None-Match.只要If-Modified-Since和/或If-None-Match条件是肯定的,服务器就会发送304"未修改"的响应而没有任何内容.如果发生这种情况,则允许客户端将当前缓存的内容保留在缓存中并更新标头.