Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Примеры использования HTTP/1.1 304 Not Modified
Для разгрузки канала клиента за счет кеширования браузером страниц можно использовать следующий код, позволяющий браузеру не загружать те страницы, которые у него уже есть в кэше. Аналогично можно сделать и для изображений. C помощью директив файла .htaccess сделана настройка чтобы все файлы с сервера отправлялись через index.php:
$url = $_SERVER['REQUEST_URI'];
if($url==""||$url=="/")
$url="index.htm" ;
else $url=substr($url, 1);
if ( !file_exists( $url ) ) { header("HTTP/1.0 404 Not Found"); exit();}
// Получаем время последней модификации кэш-файла
$lastModified = max(filemtime($url),filemtime('index.php')); $slastModified = gmdate('D, d M Y H:i:s', $lastModified) . ' GMT';
// Выдаём заголовок HTTP Last-Modified
header('Last-Modified: ' . $slastModified );
// Получаем заголовки запроса клиента - только для Apache
$headers = getallheaders();
if (isset($headers['If-Modified-Since'])) { // Разделяем If-Modified-Since (Netscape < v6 отдаёт их неправильно)
$modifiedSince = explode(';', $headers['If-Modified-Since']);
// Преобразуем запрос клиента If-Modified-Since в таймштамп
$modifiedSince = strtotime($modifiedSince[0]);
// Сравниваем время последней модификации контента с кэшем клиента
if ($lastModified <= $modifiedSince) { header('HTTP/1.1 304 Not Modified'); exit(); } // Разгружаем канал передачи данных!
}
echo "<!DOCTYPE html>\n<html>\n";
echo "<head>\n";
echo "<meta charset=\"utf-8\">\n";
echo "<meta http-equiv=\"Last-Modified\" content=\"".$slastModified."\">\n";
.htaccess:
RewriteEngine On RewriteCond %{REQUEST_URI} !index\.php$ RewriteCond %{REQUEST_URI} !\.jpg$ RewriteCond %{REQUEST_URI} !\.gif$ RewriteCond %{REQUEST_URI} !\.png$ RewriteCond %{REQUEST_URI} !\.js$ RewriteCond %{REQUEST_URI} !\.txt$ RewriteCond %{REQUEST_URI} !\.xml$ RewriteCond %{REQUEST_URI} !\.html$ RewriteCond %{REQUEST_URI} !\.htm$ RewriteCond %{REQUEST_URI} !\.mid$ RewriteCond %{REQUEST_URI} !\.avi$ RewriteCond %{REQUEST_URI} !\.css$ RewriteRule ^(.*)$ /index.php [L]
Подробнее о .htaccess можно почитать здесь
.
Прокомментировать/Отблагодарить