safari不会发回任何请求标题&我疯了我很惭愧我花了很长时间才意识到这一点(从一段时间后发回304,直到现在才意识到野生动物园问题)
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) or isset($_SERVER['HTTP_IF_NONE_MATCH'])) {
if (isset($_SERVER['HTTP_IF_NONE_MATCH'])) echo $_SERVER['HTTP_IF_NONE_MATCH']."<br/>";
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) echo $_SERVER['HTTP_IF_MODIFIED_SINCE']."<br/>";
}
else {
header("Content-Type: text/html");
header("Last-Modified:Fri, 13 Dec 2001 20:45:54 GMT");
header("Etag".md5_file(__FILE__));
header("Expires:Fri, 13 Dec 2001 20:45:54 GMT") ;
header("Pragma: private");
header("Cache-Control:must-revalidate");
echo 'refresh to view last modified/etag headers sent back by browser<br/>;
}
Firefox说话,Chrome说话,探险家说话。
Safari很蠢。
阅读此http://use.perl.org/~bart/journal/36598表示问题来自于上次修改后的标头中发送到Safari的日期格式。如果那就是上面使用的格式出了什么问题?
花了3个小时进行测试和无用的搜索。现在浏览developper.apple网站,然后放弃为safari提供缓存支持...可能是一个内部设置,复制粘贴http格式的日期,丢失标题错误...
感谢您的帮助
编辑:这是在刷新上面的测试脚本时,safari发送的http标头,从safari开发工具(资源)中复制
Accept:application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Cache-Control:max-age=0
User-Agent:Mozilla/5.0 (Windows; U; Windows NT 6.0; fr-FR) AppleWebKit/533.18.1 (KHTML, like Gecko) Version/5.0.2 Safari/533.18.5