Запрет кэширования страниц средствами PHP

В процессе разработки Интернет сайтов нередко возникает необходимость в блокировании функции кэширования страниц на стороне пользователя. Обычно такая потребность вызвана необходимостью отображения страниц с часто меняющимся набором данных.

Решить проблему запрета кэширования страниц можно несколькими способами, но тут мы будем рассматривать только вариант с использованием встроенных функций PHP.

По сути дела, приведенный ниже код просто меняет заголовок передаваемой пользователю страницы в соответствии с заданными параметрами. По большому счету, то же самое можно сделать просто средствами HTML, но, если в страницу все равно внедряется код PHP, ниже описанный способ будет более эффективным.

<?php
// Запрещаем кэширование страниц
header("Expires: Mon, 01 Jul 2009 00:20:00 GMT"); // Давно прошедшая дата
header("Cache-Control: no-cache, must-revalidate");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")."GMT");
?>

Данный способ работает в 99% случаев. Может не сработать только, если на входе к клиенту стоит прокси, который блокирует возможность запрета кэширования страниц. Но в такой ситуации, как говорится: против лома — нет приема.