在寻求绝对,肯定,最肯定地完全禁用尽可能多的浏览器/服务器/情况的缓存时,我发现了许多关于HTTP标头的矛盾答案和建议使用。
请注意,我在这里谈论的是服务器方面,即我应该从服务器发送哪些HTTP标头,以避免任何来访的浏览器将我的数据缓存并完全重新获取每个请求。
首先,有Cache-Control
标头。我发现以下参数的不同组合:
Cache-Control: no-cache, no-store, must-revalidate, post-check=0, pre-check=0, max-age=0
哪个是正确的?哪个有用?哪个是假的?我需要更多吗?
然后,特别是在PHP中,有些人倾向于添加以下内容:
header("Cache-Control: private",false);
false
参数是为了避免替换任何较早的Cache-Control标头,因此有效的做法是添加第二个HTTP标头,如下所示:
Cache-Control: private
有什么用吗?
然后是Expires
标头,通常最好将其设置为0:
Expires: 0
有道理。
最后有一个Pragma
标头,在这里我也看到了相互矛盾的建议。
有人说:Pragma: no-cache
其他人建议:Pragma: public
哪个更好?
我还忘记了什么?