如何使用control-cache标头?

pay*_*ing 8 php caching header

我为Google Chrome浏览器下载了Google速度跟踪器,以了解我的网站如何提高性能,它告诉我需要为某些文件启用缓存,例如我的style.css,图片等.

我已经读过下面的php代码应该告诉浏览器缓存html内容.我写了一个快速的php页面,上面有几张图片,并将下面的代码放在顶部(在发送标题之前),以测试它是如何工作的.

Header("Cache-Control: public, max-age=3600, must-revalidate");
Run Code Online (Sandbox Code Playgroud)

当我回到速度跟踪器的分析时,它说......

缓存摘要:false

请求标头 Pragma:无缓存Cache-Control:max-age = 0

但在响应标题下 ...缓存控制:public,max-age = 3600,必须重新验证(正是我指定的)

我有点困惑,发生了什么......?当它从缓存中说:false是否意味着从服务器缓存而不是客户端的缓存?

fux*_*xia 4

关键是必须重新验证:这意味着客户端正在询问服务器文件是否已更改。如果您不\xe2\x80\x99 处理这种情况,浏览器将获取新副本。

\n\n

阅读Mark Nottingham\xe2\x80\x99s 精彩的缓存教程以获取更多信息。\n作为 PHP 实现的示例,您可以使用我的代码

\n\n

调查$_SERVER[\'HTTP_IF_NONE_MATCH\']$_SERVER[\'HTTP_IF_MODIFIED_SINCE\']验证客户。请注意,这两个标头都可能包含恶意代码。;)

\n