304 Not Modified, как добиться такого ответа?

Greendrake

Новичок
304 Not Modified, как добиться такого ответа?

На серваке Апач имеется файл:

PHP:
<?
$str = "bla bla bla";
header("Last-Modified: Fri, 11 Aug 2006 11:44:50 GMT");
header('ETag: "'.md5($str).'"');
header("Cache-Control: no-cache");
echo $str;
?>
Кроме того, имеется обычный html-файл со ссылкой на этот.

Кликаем на этой ссылке раз, получаем от сервера ответ 200 OK.
Возвращаемся назад, и кликаем снова. При этом убеждаемся, что этот (второй) запрос GET имеет необходимые заголовки If-Modified-Since и If-None-Match (с помощью анализатора трафика; кстати, IE их не посылает почему-то, только FireFox).
И снова получаем ответ 200 OK (вместе с телом bla-bla-bla) !!

Почему не 304 Not Modified, кто нибудь в курсе??
Я правильно понимаю, что при втором клике сервак сам должен сравнить поля If-Modified-Since и If-None-Match в запросе с заголовками Last-Modified и ETag и принять решение - отдать 200 или 304 ? Или это решение нужно принимать в самом скрипте, и отдавать 304 принудительно?
 

ksnk

прохожий
кстати, IE их не посылает почему-то, только FireFox
потому-что
header("Cache-Control: no-cache");
Если уж no-cache, то и нефиг линию трузить ненужной информацией.
решение нужно принимать в самом скрипте, и отдавать 304 принудительно
да именно так, проверяя Last modified и ETag.
header
 

Greendrake

Новичок
Автор оригинала: ksnk
потому-что
Если уж no-cache, то и нефиг линию трузить ненужной информацией.
Дык если его убрать, то тогда что IE что FireFox при втором клике вообще не удосужатся запрос отправить!
А мне нужна именно валидация.
Если уж делать без кеша, тогда не no-cache, а no-store ставилось бы.

да именно так, проверяя Last modified и ETag.
header
мммм... ок.
Я думал этой байдой апач занимается.
 

lucas

Новичок
Дык если его убрать, то тогда что IE что FireFox при втором клике вообще не удосужатся запрос отправить!
А если попробовать отключить кеширование (выделить под кеш 0 МБ)?
 
Сверху