我有以下PHP脚本(比如cache.php):
<?php
Header("Cache-Control: public");
$offset = 60 * 60 * 24 * 3;
$ExpStr = "Expires: " . gmdate("D, d M Y H:i:s", time() + $offset) . " GMT";
Header($ExpStr);
echo "Hello world";
?>
据我了解,这应该使浏览器在第一次访问它时存储其输出的缓存版本,然后在接下来的3天内提供此版本,甚至不向服务器发送请求。不幸的是,情况并非如此(使用apache 2.2),有没有人有任何有用的见解? (显然我可以在PHP脚本中强制使用304标头,但这不应该是必需的)
由于
答案 0 :(得分:1)
看来我的错是通过按F5来检查是否发生了缓存,F5(与图像,css等其他资源不同)显式从服务器获取新条目,而不是呈现存储的条目。为了检查缓存,应该保留指向相关页面的链接(在不同的页面上),并且只检查缓存页面是否通过单击来提供。
作为旁注,如果php页面正在使用会话,session.cache.limiter也会影响缓存。