Эта тема на forum.dklab.ru


Raphael: Кэширование на стороне клиента (HTTP/1.0 304 Not Modified)
скажите пожалуйста как включить кэширование на стороне клиента

следующий код (не) работает, в принципе работает, только броузеры не отправляют заголовок 'If-Modified-Since'(кроме оперы)


session_cache_limiter('public');
$headers= getallheaders();
if ((!empty($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) <= $page_time))) {
header('HTTP/1.1 304 Not Modified');
exit();
}
header('Last-Modifies: '.date('r',$page_time));


вероятно нужно отправить ещё какойто заголовок, или отключить отправку имеющихся.
вот результат выполнения функции print_r(getallheaders());


Array
(
[Accept] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
[Accept-Charset] => windows-1251,utf-8;q=0.7,*;q=0.7
[Accept-Language] => ru,en-us;q=0.7,en;q=0.3
[Connection] => keep-alive
[Host] => test.lan
[Keep-Alive] => 300
[User-Agent] => Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20040913 Firefox/0.10
)

Юрий Насретдинов:
header('Last-Modifies:
Last-Modified может?
Дмитрий Котеров:
вероятно нужно отправить ещё какойто заголовок
Вполне возможно.
Поставьте себе Proxomitron, настройте и посмотрите, какие заголовки ходят туда-сюда для статических страниц. Потом сделайте то же самое в скрипте.
Raphael:
yUAC точно! БОЛЬШОЕ СПАСИБО, я бы ещё неделю мучался.

правда ещё стоят эти:
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');

Эта тема на forum.dklab.ru