我无法在用户浏览器上可靠地设置 Etag。当用户点击我的一个外部链接时,我想将文章 id 设置到他们的 Etag 中(我也使用 cookie,但我喜欢专门试验 Etag 以测试其可靠性)。
当同一用户几小时/几天后返回我的网站时,我希望能够读取 Etag 值并将其用于东西。
我可以在初始点击时设置一个 Etag,但是当用户返回时,Etag 值就消失了。我认为它已过期或什么的。这是我一直在尝试的代码:
<?
$time = 1280951171;
$lastmod = gmdate('D, d M Y H:i:s \G\M\T', $time);
$etag = '123';
$ifmod = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] == $lastmod : null;
$iftag = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] == $etag : null;
if (($ifmod || $iftag) && ($ifmod !== false && $iftag !== false)) {
header('HTTP/1.0 304 Not Modified');
} else {
header("Last-Modified: $lastmod");
header("ETag: $etag");
}
print_r($_SERVER);
?>