【发布时间】:2013-12-20 16:48:27
【问题描述】:
我的标题中有以下功能
function header_alter($file)
{
$timestamp=filemtime($file);
$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT';
$etag = $timestamp;
$if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false;
$if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false;
if ((($if_none_match && $if_none_match == $etag) || (!$if_none_match)) &&
($if_modified_since && $if_modified_since == $tsstring))
{
$arr[] = 'HTTP/1.1 304 Not Modified';
}
else
{
$arr[] = "Last-Modified: $tsstring";
$arr[] = "ETag: \"{$etag}\"";
}
$arr[] = "Cache-Control: max-age=3600";
$arr[] = 'Expires: ' . date('D, d M Y H:i:s', time() + (3600)) . ' GMT';
return $arr;
}
但是当我使用下面的代码查看标题时
foreach (getallheaders() as $name => $value) {
echo "$name: $value\n";
}
Host: localhost
Connection: keep-alive
**Cache-Control: max-age=0**
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
If-None-Match: "1387557104"
If-Modified-Since: Fri, 19 Dec 2013 16:31:44 GMT
缓存控件未更新。谢谢大家的帮助。
【问题讨论】:
-
getallheaders() 返回客户端为当前请求发送的标头。客户端无法告诉服务器缓存控制设置 - 这仅适用于服务器->客户端响应。您需要使用客户端工具(例如 firebug、开发者控制台、等等等等)查看服务器发送的标头。
-
我正在使用 chrome,我该怎么做?
-
ctrl-shift-i打开 chrome 开发工具。点击网络标签,点击与您的脚本网址对应的请求,然后点击标题标签
标签: php http-headers cache-control