Выдача Last-Modified, а также работа с If-Modified-Since в PHP-скриптах

3 августа 2012 1 комментарий

Выдача Last-Modified, а также работа с If-Modified-Since в PHP-скриптах

<?php // Определяем дату модификации скрипта и выдаем Last-Modified $last_modified = filemtime($SCRIPT_FILENAME); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $last_modified) . ' GMT'); // Пытаемся получить содержимое If-Modified-Since foreach($_SERVER as $name => $value) { if($name == 'HTTP_IF_MODIFIED_SINCE') $modified_since = $value; } // Пытаемся преобразовать значение в Unix time if (isset($modified_since)) { $modified_since = strtotime(preg_replace('/;.*$/', '', $modified_since)); } else { $modified_since = 0; } // Сравниваем даты и выдаем заголовок, если требуется if ($last_modified <= $modified_since) { header('HTTP/1.1 304 Not Modified'); exit(); } ?> (далее…)
Categories: PHP, SEO Tags: , , ,

If-Modified-Since и If-None-Match, если PHP не установлен как модуль Apache

3 августа 2012 Нет комментариев

If-Modified-Since и If-None-Match, если PHP не установлен как модуль Apache

Многие разработчики (веб программисты), кто начинает "общаться" с кэшированием веб страниц на стороне клиента, знает о таких вещах (заголовках HTTP) как «If-Modified-Since» и «If-None-Match». Эти заголовки отдаются браузером при обращении к странице, которые лежат в его кэше. Для того, чтобы правильно сделал кеширование на стороне клиента, серверной части необходимо отправить заголовок "HTTP/1.0 304 Not Modified" и остановить передачу данных если содержимое запрошеной страницы не менялось с того времени, которое указано в присланном заголовке "If-Modified-Since". (далее…)