No Cache
对于动态资源,缓存也许是不恰当的。在这种环境下,响应应该包含下面头部:
"cache-control": "no-cache"
这将指示浏览器/客户端每次请求的时候都去检查请求是否可用。这个头部通常也和Etag这个头一起使用,下一章将会讨论相关内容。
在缓存都必须被禁止的情况下,可以使用no-store:
"cache-control": "no-store"
这个头部告诉代理和客户端不要保留这个响应的缓存,并且当有请求到来的时候总是去后端服务器。
技巧
Cache-Control头部是HTTP/1.1标准的一部分。老的浏览器或者是代理也许不能完整支持它。一个常用的解决方案是使用Pragma
头(HTTP 1.0标准的一部分),代替Cache-Control.
禁止缓存一般是在一些特殊的情况下,例如,响应中包含敏感数据,无论在哪个应用都应该支持(禁止缓存)这个特性。除了使用max-age
指令,更成熟的解决方案是使用ETag头部。下一小节将讨论使用这个头部。