« ДПП Бегуна – Спутник | hyves pagerank »
Если у вас все запросы на сервер заведены через какой-нибудь скрипт через htaccess, например для записи собственной статистики или для ручного определения что можно отдавать, а что нельзя, то желательно правильно обрататывать всякие “новые” (хттп 1.1) запросы, типа IfModifiedSince. Это позволяет сэкономить ресурсы сервера, если запрашиваемое является статическим файлом, но тем не менее отдаётся скриптом. Тогда, если клиент прислал запрос на файл с заголовком IfModifiedSince, а файл не поменялся, можно вместо файла отдавать заголовок 304. Делается это так:
function setModifiedDate($contentDate) {
$ifModifiedSince = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? stripslashes($_SERVER['HTTP_IF_MODIFIED_SINCE']) : false;
if ($ifModifiedSince && strtotime($ifModifiedSince) >= $contentDate) {
header(‘HTTP/1.0 304 Not Modified’);
die; // stop processing
}
$lastModified = gmdate(‘D, d M Y H:i:s’, $contentDate) . ‘ GMT’;
header(‘Last-Modified: ‘ . $lastModified);
}
Функцию надо вызывать с именем файла перед выдачей файла клиенту вручную, тогда если он не менялся, то функция отдаст клиенту 304 и прервет выполнение скрипта, а если заголовка нет или файл поменялся – будет выставлен правильный заголовок Last-Modified и скрипт просто продолжит выполняться.
2 Responses
January 15th, 2009 at 19:53:59
// php gravatar() ?>1Только не с “именем файла”, а с датой его последней модификации.
Т.е. в скрипте это будет выглядеть примерно так (если пользоваться приведенной выше функцией):
January 15th, 2009 at 19:55:12
// php gravatar() ?>2Код в комменте “запилился”
Должно быть вот что:
…
$file_path = ‘/my-files/some-file.gif’;
setModifiedDate( filemtime($file_path) );
readfile($file_path); // or do some other stuff
…
RSS feed for comments on this post · TrackBack URI
Написать комментарий
Про что писал
Календарь
Куйворды
Архив
Подписка на блог
Статистика подписки
Страницы
Комментарии
Последние посты
Blogroll
Счётчики