在网站优化当中,我们不可避免的对图片进行优化,但其中有一项在浏览器端的图片缓存。
一般根据Http返回状态来处理。当返回304直接从缓存中读取
我们加上个etag就可以了
cache();
echo date(”Y-m-d H:i:s”);
function cache()
{
$etag = “http://www.yzfang.com”;
if (isset($_SERVER['HTTP_IF_NONE_MATCH']) &&
$_SERVER['HTTP_IF_NONE_MATCH'] == $etag)
{
header(’Etag:’.$etag,true,304);
exit;
}
else header(’Etag:’.$etag);
}
在扬州房地产家居网中,我将该功能进行了函数化处理,这样就可以再需要的地方使用了
function _addEtag($file) {
$last_modified_time = filemtime($file);
$etag = md5_file($file);
// always send headers
header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT");
header("Etag: $etag");
// exit if not modified
if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time ||
@trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
header("HTTP/1.1 304 Not Modified");
exit;
}
}
上述有什么不对的地方,欢迎来访!