<?php
chdir('../../../../');
include('bootstrap.php');
$place = isset($_GET['place']) ? (is_array($_GET['place'])) ? intval($_GET['place'][0]) : intval($_GET['place']) : null;
$query = mysql_query("SELECT `place`, `image`, `imagetype` FROM `topvideo` WHERE `place` = '" . $place . "'");
if (mysql_num_rows($query))
{
while ($row = mysql_fetch_array($query))
{
$im = imagecreatefromstring($row['image']);
if ($im !== false)
{
header('Cache-Control: public, proxy-revalidate');
header('Last-Modified:Mon, 02 Nov 2009 09:50:18 GMT');
header('Expires: ' . gmdate ("D, d M Y H:i:s", time() + 60 * 60 * 24 * 24 . ' GMT');
header('Content-Type: image/jpeg');
imagejpeg($im);
imagedestroy($im);
}
}
}
响应始终为200,但我需要将图像缓存2天,响应为304 ....为什么? 抱歉英文不好
答案 0 :(得分:1)
发送304您需要在响应标头中包含Etag,etag就像内容的哈希本身及其创建日期。
在您回复中包含etag后,浏览器会向您发送请求标题“If-None-Match”。
你必须比较这些标题,如果它们匹配,则回复304,如果没有发送带有新Etag标题和状态200的新内容。