Как Яндекс реагирует на Cache-Control

Soft
На сайте с 22.06.2008
Offline
34
1258

Как Яша реагирует на :

header('Cache-Control: max-age=86400, must-revalidate');

Или это только для пользователя?

S
На сайте с 10.08.2006
Offline
115
#1
Soft:
Как Яша реагирует на :
Или это только для пользователя?

никак не реагирует, ему по баробану. его робот действует согласно своим планам🤣

T.R.O.N
На сайте с 18.05.2004
Offline
314
#2

Soft, Перед тем как задавать такие вопросы, посмотрите как выглядит заголовок, а потом почитайте что он значит и для чего. Для пользователей - он теже не важен

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
mfl
На сайте с 16.10.2006
Offline
134
mfl
#3
Для пользователей - он теже не важен

С чего это?

Cache-Control: max-age=86400

- браузер заносит файл в кеш на 86400 секунд и в течении этого времени не обращается к нему используя файл в кеше.

Или я не прав?

T.R.O.N
На сайте с 18.05.2004
Offline
314
#4
mfl:
Или я не прав?

если верить в догмы стандарта - правы. На практике - не совсем.

1. очень мало прокси сиетем реагируют на ответы сервера. Чаще всего они ведеут себя так "как прописано их собственными правилами"

2. Броузеры, в основной своей массе, кешируют все документы, которы загружают. И избавится от кеширования простой передачей заголовка - не удается. Приходится использовать принудительные способы.

3. Хотет уменьшить нгрузку на сервер и каналы, грамотно отдавайте 304 ошибку по If-Modified-Since

XPraptor
На сайте с 15.10.2004
Offline
333
#5

T.R.O.N, Ну не совсем так, я бы сказал.

Достаточно вот таких заголовков


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("Pragma: no-cache");

И ни одна система не будет кэштровать страницы.

По крайней мере на этом форуме постоянно в кэш все страницы идут и у меня в новой опере 9.51 всегда приходиться обновлять страницы чтобы увидеть новое (порядком задобало уже). На других форумах и сайтах где нормально прописаны эти заголовки все в порядке в опере новой.

T.R.O.N
На сайте с 18.05.2004
Offline
314
#6
XPraptor:
По крайней мере на этом форуме постоянно в кэш все страницы идут и у меня в новой опере 9.51 всегда приходиться обновлять страницы чтобы увидеть новое (порядком задобало уже).

я об этом и говрю, первично - все работают так, как настроено у них. (В опере достаточно выбрать в списке - проверять обновление страниц на сервере.)

А приведенный Вами заголовок - конечно же, конечного пользователя избавит от гемора, если только он не идет через прокси.

Soft
На сайте с 22.06.2008
Offline
34
#7
T.R.O.N:
Хотет уменьшить нагрузку на сервер и каналы, грамотно отдавайте 304 ошибку по If-Modified-Since

у меня следующий код. (пока не разобрался грамотно так или нет)



function if_modified_since($unix_timestamp)
{
$last_modified = date("D, d M Y H:i:s T", time());
//$unix_timestamp = strtotime($unix_timestamp);


$last_modified = $unix_timestamp;
// отправил ли браузер запрос if-modified-since request?
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
// разобрать заголовок
$if_modified_since = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);

if ($if_modified_since == $last_modified) {
// кэш браузера до сих пор актуален
header("HTTP/1.1 304 Not Modified");
header('Cache-Control: max-age=86400, must-revalidate');
exit;
}
}

header('Cache-Control: max-age=86400, must-revalidate');
header('Last-Modified: ' . $last_modified);

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий