Я работаю над php-сервисом, который отображает изображения.Моя проблема в том, что я не могу правильно обработать кеш браузера.
Это код:
date_default_timezone_set('Europe/Brussel');
$expireTime = 7200;
header('Date: '.gmdate('D, d M Y H:i:s', time()).' GMT');
header('Expires: '.gmdate('D, d M Y H:i:s', time() + $expireTime).' GMT');
header('Cache-Control: max-age='. ($expireTime).', public'); // must-revalidate ?
header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($path)).' GMT');
header('Content-Type: '.HelpersFile::getMIME($path));
header('Content-Length: ' . filesize($path));
header('Content-Disposition: inline;');
header('Pragma: public');
$fileRessource = fopen($path, 'rb');
fpassthru($fileRessource);
header('Connection: Close');
exit();
И это результат в http://web -sniffer.net / :
Статус: HTTP / 1.1 200 OK Дата: понедельник, 16 января 2012 21:21:25 GMT
Сервер: Apache / 2.2.16 (Debian)
X-Работает на: PHP / 5.3.3-7 + squeeze3
Set-Cookie: PHPSESSID = 86m4rha4rvth4q8srrpg48t4t0;путь = /
Истекает: понедельник, 16 января 2012 23:21:25 GMT
Контроль кэша: max-age = 7200, общедоступный
Прагма: общедоступный
Последнее изменение: вс, 15 янв.2012 14:42:39 GMT
Content-Length: 223247
Content-Disposition: inline;Подключение: закрыть
Content-Type: image / png
И, наконец, вы можете увидеть службу PHP здесь: http://spinephp.info/service/MediaLibrary/mediaWithId/1.jpg
Если я загружу файл в Chrome илиВ любом другом браузере я всегда получаю ответ 200 OK от сервера, и браузер никогда не загружает файл из своего кэша.
Понятия не имею, что я делаю не так.У кого-нибудь есть подсказка для меня?
[Edit] Если быть более точным, я хочу, чтобы клиентский браузер вообще не запрашивал сервер в течение 2 часов.Это возможно?