HTTP кэширование I небольшое исследование по теме

2.46K
.
(\/)____o_O____(\/)
Dimario, Да её вообще можно убрать, доктип сообщает тип документа
.
Dimario (05.10.2011/13:34)
Мозг уже себе сломал, думаю и вам сломать.

... теперь веб сайт, смотрю его с разных браузеров,

[php]
header((stristr($agn, "msie") && stristr($agn, "windows")) ? 'Content-type: text/html; char
На wapinet.ru посмотри файл mail2.zip

Правда до конца не доработано (ошибки скрыты)
.
Dimario, там нет синтаксических ошибок, ошибки у тебя где то в логике.
самое главное, зачем эта строка?? и где она у тебя используется
.
Уехал в Украину
ramzes (05.10.2011/23:19)
Dimario, там нет синтаксических ошибок, ошибки у тебя где то в логике.
самое главное, зачем эта строка?? и где она у тебя используется
ну как бы без неё сайт становится ужасным) тк он начинает обрабатываться как html
.
(\/)____o_O____(\/)
Dimario, кинь адрес сайта, или всю шапку, заголовки тоже бы не помешали
---

HTTP/1.1 200 OK
Date: Thu, 06 Oct 2011 06:48:30 GMT
Server: Apache/2.2.16 (FreeBSD)
X-Powered-By: PHP/5.3.3
Set-Cookie: PHPSESSID=pl7uk2gbqqh37fau78ppd1ade5; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8

463
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Lang" content="ru" /> <title>url to html</title> <link rel="stylesheet" href="../css/css4.css" type="text/css" />
</head>
.
╭∩╮ (`-`) ╭∩╮
ramzes (05.10.2011/23:19)
зачем эта строка?? и где она у тебя используется
Ту строку я ввел всего лишь для совместимости с Microsoft Internet Explorer, который тупо не может показывать XHTML Mobile. Про 9 версию не знаю, но более старые не показывали.
---
Если весь сайт перевести на HTML, да, для чайников станет немного легче, ибо ошибки XHTML уже не будут критичными. Но зато на большинстве мобильных браузеров потеряете многие мелкие, но приятные для глаза элементы визуального оформления.

Да и сам стандарт мобильной индустрии, обязывает нас применять именно XHTML Mobile, хотя современные браузеры смартфонов переваривают все, что угодно. А раз есть стандарт, то ему и нужно следовать.
.
У меня в заголовке прописано no-cache и все равно и с оперы и со стандартного все страницы кэшируются. При нажатии кнопки назад даже соединение интернет не открывается. Это типо тоже неправильно прописано?
.
Беж (12.01.2012/17:37)
У меня в заголовке прописано no-cache и все равно и с оперы и со стандартного все страницы кэшируются. При нажатии кнопки назад даже соединение интернет не открывается. Это типо тоже неправильно пропи
Так и должно быть.
Не надо это ломать.
.
UA95 (20.06.2012/00:06)
Будет работать если например кеширование использовать в грабере?
Кеширует браузер, ваш граб не браузер, так что нет, не будет ни чего кешировать
.
╭∩╮ (`-`) ╭∩╮
Всем превед!
Сегодня опять занялся проблемой кэширования ресурсов сайта на стороне клиента.
А именно: вся статика, типа CSS, картинок и обычных HTML страниц должна оставаться в кэше браузера на определенный нами срок и не напрягать лишний раз сервер.

Вроде бы все просто, но на деле оказалось не так.
Залез я на Гугловский PageSpeed и проверил наш сайт. Ругается: мол обеспечьте кэширование статики у клиента для скорости.

Выдавать средствами РНР нужные заголовки для статики - это тот еще геморой, невозможно к примеру вставлять картинки и стили напрямую, надо отдавать только через скрипт (а это лишний напряг для интерпретатора), ибо заголовки (header) надо давать ДО того, как в бравузер поступила хоть какая-то информация, посему, подобный ход сразу с негодованием отметаем.

В принципе, у нас в JohnCMS в файле .htaccess есть специальный наворот в виде блока

<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault A1209600
<FilesMatch \.php$>
ExpiresActive Off
</FilesMatch>
</IfModule>

это значит, что если у Апача имеется модуль expires, он будет задействован и сам выдаст все нужные заголовки, однако это почему то не работало. Я начал подозревать, что был криво написан конфиг для Expires (сам модуль у нас на сервере задействован) и бросился на раскопки Гугла...

В итоге исправить удалось, КАК, напишу ниже...
Всего: 87