测试php禁用的缓存

测试php禁用的缓存,php,http-headers,Php,Http Headers,我的网站有一个问题,就是某些浏览器(尤其是opera和gecko)的“缓存过度”(缓存过多,不合我的口味) 我刚刚添加了以下PHP代码片段,希望能够在所有浏览器中禁用缓存: <?php header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cach

我的网站有一个问题,就是某些浏览器(尤其是opera和gecko)的“缓存过度”(缓存过多,不合我的口味)

我刚刚添加了以下PHP代码片段,希望能够在所有浏览器中禁用缓存:

<?php 
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

问:你将如何测试它,以确保它实际工作

补充说明:我需要一个愚蠢的简单测试;我的技术水平很低。我无法进行缓存破坏(url更改),因为它是一个单页站点。

获取当前时间()并将其存储在PHP会话中。使用var_dump()打印$_会话数组,还可以打印当前时间()。单击“刷新”几次。希望会话阵列保持稳定,并且当前时间会更改。如果两者都保持稳定,则脚本输出将被缓存

示例如下:


大多数浏览器扩展,如针对Chrome的Developer Tools或针对Firefox的Firebug,都允许您检查包含缓存所需所有信息的请求和响应头


此外,如果您是在Windows上开发,我建议您使用,这是一种优秀的调试代理,除了为您的应用程序提供深入的流量分析外,还可以用简单的英语向您解释缓存的情况。

您应该在web服务器日志中看到页面访问。比较访问模式,当页面被重新请求时,是否有额外的标题。

我会研究缓存破坏-当资产发生重大变化时更改URL-取而代之。完全像这样禁用缓存将意味着一个较慢的站点。我对PHP毫无用处,我需要为我修改上面的代码段。前面的答案经过编辑,添加一个代码示例,您可以复制并安装到服务器上进行测试。HTH,~RayIf您运行
session\u start()
-php已经发送了所有必要的头以防止缓存。只需检查响应头。因此,所有的
header()
行都是多余的,没有多大意义。
<?php // RAY_cache_test.php
error_reporting(E_ALL);
date_default_timezone_set('America/Chicago');

// SEND HEADERS
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

// START SESSION
session_start();

// GET CURRENT TIME
$now = date('c');

// IF NO TIME IN SESSION YET, STORE ONE
if (!isset($_SESSION['myTest'])) $_SESSION['myTest'] = $now;

// SHOW THE SESSION AND THE CURRENT TIME
echo 'SESSION TIME: ' . $_SESSION['myTest'];
echo '<br/>';
echo 'CURRENT TIME: ' . $now;