【发布时间】:2011-01-27 22:58:23
【问题描述】:
对不起,可能是错误的标题。我正在编写一些代码来处理 If-Modified-Since 和 If-None-Match 请求作为缓存的一部分。除了 PHP 在标题之后返回一些内容(一个空行)之外,一切都很完美。页面内容应该是空的。我正在使用的代码是:
<?php
$lastmod = filemtime($f);
$etag = '"'.dechex($lastmod).'"';
if ($_SERVER['HTTP_IF_MODIFIED_SINCE'] == $last_mod || $_SERVER['HTTP_IF_NONE_MATCH'] == $etag) {
header('HTTP/1.1 304 Not Modified');
header('Content-Length: 0');
exit();
}
?>
【问题讨论】:
-
您的代码没有通过。重新连接?
-
此处出错:redbot.org/…
-
不要在 304 响应中添加 Content-Length 标头(参考 RFC 2616 sec 4.3)
-
@Hafthor - 实际上发送带有 304 的正内容长度作为响应完全没问题(如果有点愚蠢)“总是由标题字段之后的第一个空行终止,无论消息中存在的实体头字段。”请参阅 RFC 2616 第 4.4 节第 1 项。
标签: php header http-status-code-304