|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Igor Sysoev 2:5020/400 26 Mar 2002 14:00:42 To : Igor Sysoev Subject : Re: кэши -------------------------------------------------------------------------------- Igor Sysoev <is@rambler-co.ru> wrote: > > Artem Chuprina <ran@ice.ru> wrote: > >> VM>>> А Last-Modified? Яндекс его требует и, надо думать, учитывает его >> VM>>> наличие, определяя релевантность. С другой стороны, MSIE ведет >> VM>>> себя несколько странно, если имеет только Last-Modified, а именно >> VM>>> - берет из кеша страницу, иной раз даже если она изменилась, а >> VM>>> чтобы обновить ее, приходится жать не просто "обновить", а Ctrl + >> VM>>> "обновить". Сие есть глюк, но надо с этим что-то делать. Hаверное, >> VM>>> будет правильно отдавать и Last-Modified и ETag, изменяющиеся в >> VM>>> зависимости от контента, а баннеры контентом не считать. >> >> AC>> Hу, в принципе, да. При условии, что ты умеешь посчитать ETag до того, >> AC>> как прикрутишь баннер. В принципе, насколько я понимаю, ETag-то как >> AC>> раз придуман для того, чтобы отличить изменение документа от изменения >> AC>> его представления типа перекодировки, если требуемое представление >> AC>> может произвести кэш. Правда, я не знаю кэшей, которые это адекватно >> AC>> умеют. Хотя вот oops, например, умеет перекодировать в кодировку, >> AC>> запрошенную клиентом, сам. Hо я не изучал, по каким правилам. Hо тут >> AC>> как раз ETag противоречит идее баннера, так что весь вопрос в том, >> AC>> хочешь ты его показать или наоборот. >> >> VM> Эксперимент показал, что наличие ETag (правда он показывался как "etag", >> VM> но вроде бы названия полей заголовков нечувствительны к регистру) >> VM> проблему с кешем не решает. Opera 6 ведет себя точно как MSIE. В то же >> VM> время, в отсутствие Last-Modified вещи начинают происходить как надо - >> VM> при изменении страницы сразу показывается новый вариант. Плюс в >> VM> результате прочтения соответствующей статьи стало ясно, что если отдаешь >> VM> такие заголовки, надо еще и обрабатывать запросы типа If-Modified-Since >> VM> (кстати, где можно поподробнее почитать об этом?) Черт, как все сложно >> VM> :-) >> >> Суть проблемы, как я понимаю, в том, что браузер применяет некоторую эмпирику >> относительно Last-Modified - чем давнее modified, тем меньше вероятность, что >> изменился снова. Кэши тоже нередко такую эмпирику применяют. Если известно, >> когда он будет modified, то можно выдать Expires. Засада в том, что как >> правило, неизвестно. Hо при выдаче в пару к Last-Modified с небольшим >> временем вперед может дать хороший эффект. ETag же по сути применим только к >> HEAD-запросам, ибо если ты уже получаешь контент, то непонятно, зачем >> тебе ETag. С If-Modified-Since же все просто - если оно моложе, чем >> Last-Modified, выдаешь 304, кажется (Not Changed). Контент, соответственно, >> не выдаешь. > > Я подозреваю, что на ETag современные броузеры просто кладут. > Единственное место, где я видел, что он используется - это If-Range. > > Hо повторюсь - это лишь ощущения, тестов я пока не проводил. С ETag я ошибся. Вчера потестировал MSIE 5.5SP1. ETag он понимает при следущих условях: 1. Ему разрешено ходить по 1.1 не через прокси (это default) 2. Он пошёл не через прокси. 3. Ответ версии 1.1. Второй случай: 1. Ему разрешено ходить по 1.1 через прокси (это нужно специально настраивать) 2. Он пошёл через прокси. 3. Ответ версии 1.1. Если ETag понимается, то MSIE посылает If-None-Match: <присланный-етаг> -- Игорь Сысоев http://sysoev.ru Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/64884f185851.html, оценка из 5, голосов 10
|