Запрет кэширования для браузера

PHP 25.08.21 25.08.21 480
Бесплатные курсына главную сниппетов

Изрядное количество сценариев генерируют страницы, постоянно изменяющиеся во времени. Кэширование таких документов, которое иногда пытаются провести “слишком умные” браузеры и прокси-серверы, следует отключить. В противном случае пользователь может увидеть устаревшие данные и не заметить, что ваша страница изменилась.
Вообще говоря, если браузер “захочет” сохранять страницу в кэше и затем постоянно выдавать пользователю одно и то же, никакая сила не сможет запретить ему делать это.
К счастью, большинство браузеров более “послушны” — они адекватно реагируют на специальные заголовки запрета кэширования, которые могут присутствовать в странице, полученной с сервера. То же самое делают и прокси-серверы — правда, они используют уже другие заголовки.

Для вывода необходимых заголовков применяется функция header(). Чтобы отключить браузерное кэширование, используйте в начале сценария команды:

<?php ## Функция для запрета кэширования страницы браузером function nocache() { header("Expires: Thu, 19 Feb 1998 13:24:18 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Cache-Control: post-check=0,pre-check=0"); header("Cache-Control: max-age=0"); header("Pragma: no-cache"); } ?>

Самое неприятное то, что для полного запрета кэширования приходится всегда посылать 6 указанных заголовков, и ни один пропустить нельзя — в противном случае может “забуксовать” либо браузер, либо прокси-сервер (если таковой имеется).

 

на главную сниппетов
Курсы