| |
|
Запрет кэширования документов, кэшируемых по умолчанию
|
Эта задача возникает для PHP-скриптов вызываемых без параметров или являющимися индексами директорий, однако формирующих данные персонально под пользователя (например на основе cookies или user agent) или работающих на основе быстро изменяющихся данных. По спецификации HTTP/1.1 мы можем управлять следующими полями:
Expires
Задает дату истечения срока годности документа. Задание ее в прошлом определяет запрет кэш для данной страницы.
Cache-control: no-cache
Управление кэш. Значение no-cache определяет запрет кэш данной страницы. Для версии протокола HTTP/1.0 действует "Pragma: no-cache".
Last-Modified
Дата послднего изменения содержимого. Поле актуально только для статических страниц. Apache заменяет это поле значением поля Date для динамически генерируемых страниц, в том числе для страниц содержащих SSI.
На сайте www.php.net дается следующий код для запрета кеширования.
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // always modified
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Pragma: no-cache"); // HTTP/1.0
|
Однако, я считаю, что данный заголовок избыточен. В большинстве случаев достаточно:
header("Expires: Thu, 01 Jan 1970 00:00:01 GMT");
|
Чтобы пометить документ как "уже устаревший" следует установить Expires равным полю Date.
header("Expires: " . gmdate("D, d M Y H:i:s") . " GMT");
|
Ну и не следует забывать, что формы, запрошенные по POST также не подлежат кэшированию.
|
|
Для наших любимых посетителей:
|
|
|
|
Мы рекомендуем вам ознакомиться со следующими материалами на тему:
|
|
|
|
Информация для интересующихся веб-дизайном и программированием:
|
|
|
|
|