+  HandyCache форум
|-+  Главная категория» Общие вопросы» Опция "Игнорировать No-Cache"
Имя пользователя:
Пароль:
Страниц: 1 2 3 ... 5 [Все]   Вниз
  Отправить эту тему    Печать  
Автор Тема: Опция "Игнорировать No-Cache"  (Прочитано 63866 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« : 25 февраля 2007, 17:19:40 »

Судя по монитору (проверено также просмотром папки кэша), очень много URL, пожатых gzip, не пишется в кэш, невзирая на "писать все" в списке "З" (все остальные списки для чистоты эксперимента отключены). Примеры:
http://handycache.ru/component/option,com_smf/Itemid,10/
http://forum.ru-board.com/forum.cgi?forum=bm
Странно. Отчего ж такие файлы игнорируются? Самое интересное - в действительности они лежат в кэше. Т.е. когда-то ранее (видимо в предыдущей версии, т.к. все имеют дату до 9.01.07) они туда писались!
Подскажите, плиз, кто знает, в чем дело (может, в каких-то настройках)?
...
Обнаружил и незипованный файл, отказывающийся писаться в кэш:
http://fileforum.betanews.com/changes/1018630999/1
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #1 : 25 февраля 2007, 20:55:28 »

Михаил

Включи в "Кэш / Управление" опцию "Игнорировать No-cache"!
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #2 : 25 февраля 2007, 20:55:28 »

Странно, у меня все из списка записалось, и прочиталось из кеша. Может что-то блокирует доступ к файлу? Или преобразование какое-нибудь странное срабатывает? или ошибки на диске?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #3 : 25 февраля 2007, 22:20:32 »

DenZzz
Цитировать
Включи в "Кэш / Управление" опцию "Игнорировать No-cache"!
Спасибо, писаться началось. Но тогда я не так понимал действие этой галки. Т.е. если галка включена, то ответ с No-cache пишется в кэш. Если мы ее потом когда-нибудь выключили, то информация о том, что файл пришел к нам с No-cache, пропала, и он может пожизненно выдаваться из кэша, хотя мы этого теперь не хотим.  Или не так? Если это так, то лучше No-cache сохранять в индексе.
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #4 : 25 февраля 2007, 22:25:15 »

если галка включена, то ответ с No-cache пишется в кэш
Да
Цитировать
Если мы ее потом когда-нибудь выключили, то информация о том, что файл пришел к нам с No-cache, пропала
Да
Цитировать
и он может пожизненно выдаваться из кэша, хотя мы этого теперь не хотим
С точностью до-наоборот - он при первом же запросе будет напрямую передан браузеру, без перезаписывания кэшированного
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #5 : 25 февраля 2007, 22:37:22 »

он может пожизненно выдаваться из кэша, хотя мы этого теперь не хотим.  Или не так?

Если в списке "Не обновлять" нет специального правила для такого URL, то он будет каждый раз качаться из Инета, но не писаться в кэш! В итоге, когда-нибудь он попадет под процедуру очистки кэша и удалится...

Цитировать
Если это так, то лучше No-cache сохранять в индексе.

Не нужно пытаться засунуть в индекс кучу лишней информацию, хранить которую нам нет никакой практической пользы! Это увеличит размер индекса и затраты ресурсов на его обработку!
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #6 : 25 февраля 2007, 22:39:23 »

С точностью до-наоборот - он при первом же запросе будет напрямую передан браузеру, без перезаписывания кэшированного
Я имею ввиду если после выключения галки он подпадает под список "Н", то будет выдан из кэша, хотя по логике надо б его из инета тянуть.
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #7 : 25 февраля 2007, 22:49:52 »

по логике надо б его из инета тянуть
По какой логике? Логику задаёшь ты,- и если в "Н" есть соотв. правило - всё как раз вполне логично...
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #8 : 25 февраля 2007, 23:27:14 »

По какой логике? Логику задаёшь ты,- и если в "Н" есть соотв. правило - всё как раз вполне логично...
В "З" тоже я задавал логику - "писать все". Но она не спросясь обходилась, когда галка "Игнорировать No-cache" включена была. Т.е. опция перекрывает действие "З", но не перекрывает действие "Н". На мой взгляд, не очень логично. Логичнее было б тогда и "Н" и даже "Т" перекрывать, т.е. лезть в сеть.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #9 : 25 февраля 2007, 23:39:16 »

Михаил

Логичней было бы перенести блок настроек:
- Сохранять www. для URL
- Не сохранять файлы меньше ... Байт
- Не сохранять файлы больше ... КБайт
- Игнорировать No-Cache
- Удалять ссылку на порт 80 из имени файла в кэше
в шапку списка "Запись в кэш", как уже кто-то предлагал...

И совсем не логично, что опция "Игнорировать No-Cache" должна еще перекрывать "Н" и "Т", т.к. она всегда относилась только к записи в кэш!
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #10 : 25 февраля 2007, 23:48:24 »

В "З" тоже я задавал логику - "писать все". Но она не спросясь обходилась, когда галка "Игнорировать No-cache" включена была
Опять ты всё путаешь - может, имел в виду выключена?
Цитировать
Т.е. опция перекрывает действие "З", но не перекрывает действие "Н". На мой взгляд, не очень логично. Логичнее было б тогда и "Н" и даже "Т" перекрывать, т.е. лезть в сеть
А на мой - так эту опцию вообще следует убрать, сделав поведение HC соответствующим установленной гульке. А для случаев, где это важно - можно использовать "белый" список с обходом "З"
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #11 : 25 февраля 2007, 23:58:11 »

DenZzz
Цитировать
И совсем не логично, что опция "Игнорировать No-Cache" должна еще перекрывать "Н" и "Т", т.к. она всегда относилась только к записи в кэш!
С чего бы это к записи в кэш? Скорее как раз наоборот, к ней она не относится:
Цитата из rfc2616:
If the no-cache directive does not specify a field-name, then a cache MUST NOT use the response to satisfy a subsequent request without successful revalidation with the origin server. This allows an origin server to prevent caching even by caches that have been configured to return stale responses to client requests.
Т.е. как я понимаю, когда есть no-cache, то если НС сохранил этот ответ в кэш, то при повторном запросе он обязан сверить файл с тем, который находится на сервере (т.е. по меньшей мере запросить, не изменился ли он? невзирая на свои списки "Т" и "Н"). Причем тут несохранение в кэш? Для этого no-store есть.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #12 : 26 февраля 2007, 00:04:47 »

Опять ты всё путаешь - может, имел в виду выключена?
Да, под "включена" я имел ввиду конечно же "выключена" Улыбка
Цитировать
А на мой - так эту опцию вообще следует убрать, сделав поведение HC соответствующим установленной гульке. А для случаев, где это важно - можно использовать "белый" список с обходом "З"
Желающие не смогут получить "прозрачный" кэш.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #13 : 26 февраля 2007, 00:13:26 »

Михаил

В твоей цитате есть ключевая фраза: "This allows an origin server to prevent caching...".

Так и поступает HC: когда в заголовках есть "no-cache", то HC по умолчанию НЕ кэширует ответ сервера.
Но раз пользователь сам включил опцию "Игнорировать No-Cache", то HC будет писать такие ответы в кэш со всеми вытекающими последствиями - возможными попаданиями в списки "Н" и "Т"!
« Последнее редактирование: 26 февраля 2007, 00:51:22 от DenZzz » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #14 : 26 февраля 2007, 00:25:42 »

DenZzz
Когда опция включена, то поведение НС сейчас адекватно. К этому и вопросов-то нет.
А вот когда она выключена, то получается, что НС ведет себя неверно. Ему надо писать файл в кэш (если это позволяет список "З"), а при повторном запросе и наличии файла в кэше вести себя так, как если б списки "Т" и "Н" были отключены, т.е. лезть в интернет.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #15 : 26 февраля 2007, 00:45:16 »

Михаил

Еще раз, опция "Игнорировать No-Cache" влияет только на запись в кэш и ей самое место в настройках списка "З"!
Не нужно привязывать к опции, отвечающей за кэширование, еще и функции необновления!
Хранение лишних данных о "No-Cache" в индексе только замедлит работу HC !
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #16 : 26 февраля 2007, 00:54:37 »

Михаил
Дело в том, что сегодня НС не сохраняет директиву no-cache.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #17 : 26 февраля 2007, 00:57:41 »

mai62
Я это понял, в связи с чем внес предложение хранить ее в индексе. При надлежащей организации это может занять один бит.
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #18 : 26 февраля 2007, 08:22:58 »

Михаил

Необходимость хранения "no-cache" может быть полезна только при сочетании 2 противоречивых факторов:

1. Пользователь сам включил опцию "Игнорировать No-cache", но попользовавшись, решил ее отключить. Вопрос: а зачем он ее включал и почему отключил?
2. В списке "Н" и "Т" есть правила, захватывающие данные, переданные сервером  с "no-cache". Вопрос: почему пользователь об этом не подумал и не отключил/исправил эти правила или не почистил кэш после отключения опции "Игнорировать No-cache"?

Настолько ли вероятно сочетание этих двух факторов, что хранение "no-cache" будет востребовано?

Кажется, опять уперлись в вопрос: а может ли кэш HC иметь абсолютную актуальность? Этот вопрос уже обсуждался вот в этой теме...
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #19 : 26 февраля 2007, 10:57:41 »

DenZzz
Цитировать
Вопрос: а зачем он ее включал и почему отключил?
Думал, будет хорошо, а получилось как всегда Подмигивающий
Цитировать
Вопрос: почему пользователь об этом не подумал и не отключил/исправил эти правила или не почистил кэш после отключения опции "Игнорировать No-cache"?
Править правила и чистить кэш после этого нереально - неизвестно, что править/чистить + не хочется.
По-моему, если мы делаем опцию, то она должна правильно работать, сколько ни включай/выключай ее пользователь. Это не связано с абсолютной акутальностью кэша, а связано с корректностью работы программы.
И еще. В конечном итоге НС, на мой взгляд, должна позволять пользователю приблизиться к абсолютной актуальности кэша настолько, насколько он пожелает.
« Последнее редактирование: 26 февраля 2007, 11:02:39 от Михаил » Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #20 : 26 февраля 2007, 11:19:26 »

Михаил
С теорией я в общем-то согласен. Записывали что-то в кэш с включенной опцией, затем отключили ее, но продолжаем получать из кэша сохраненное ранее вместо того, чтобы снова и снова качать с сервера. Непорядок.
Но вот представить себе практическую ситуацию, когда это будет действительно во вред, что-то не получается. Особенно при включенной опции "Добавить If-Modified-Since при наличии файла в кэше".
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #21 : 26 февраля 2007, 11:26:13 »

Rick
Цитировать
Но вот представить себе практическую ситуацию, когда это будет действительно во вред, что-то не получается. Особенно при включенной опции "Добавить If-Modified-Since при наличии файла в кэше".
Так до нее же (до этой опции) дело не дойдет, если URL есть в "Н" или "Т" - файл молча возьмется из кэша.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #22 : 26 февраля 2007, 11:31:37 »

Так до нее же (до этой опции) дело не дойдет, если URL есть в "Н" или "Т" - файл молча возьмется из кэша.
Во-первых, и без этой опции что-то не придумывается "вредная" ситуация, во-вторых, удивитильно: что меня заставило написать правила для Н/Т а потом отказаться от кэширования файлов попадающих под эти правила? Разве-что специально я хочу что-то записать в кэш, а потом только это и видеть - но ведь в таком случае все именно так как надо.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #23 : 26 февраля 2007, 13:41:56 »

Rick
Цитировать
что-то не придумывается "вредная" ситуация
Чем менее опытен пользователь, тем больше таких ситуаций он себе создаст. Не придумывая, а просто по незнанию, недопониманию, недосмотру и т.п.
И этому в значительной мере поможет НС, неправильно обрабатывая опцию.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #24 : 26 февраля 2007, 14:28:41 »

Чем менее опытен пользователь, тем больше таких ситуаций он себе создаст. Не придумывая, а просто по незнанию, недопониманию, недосмотру и т.п.
Пример?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #25 : 26 февраля 2007, 15:28:59 »

если URL есть в "Н" или "Т" - файл молча возьмется из кэша.

Так он и раньше точно также молча брался из кэша! С какой стати отключение "no-cache" должно менять порядок вещей?!

Само по себе включение "no-cache" не влечет необновления данных, если в списках "Н" или "Т" нет соответствующих правил, так почему же ее отключение должно вызывать обратный эффект!
Если у пользователя что-то не обновляется, то он будет разбираться со списками "Н" или "Т", а не полезет отключать "no-cache", т.к. это не логично - нет причинно-следственной связи!

Почему у пользователя отключение "no-cache" должно ассоциироваться с обязательным обновлением файла, если он даже не знает какие сайты кэшировались этой опцией, а какие нет?!
Отключив эту опцию, он не может точно знать, какие сайты выпали из-под действия этой опции! Внешние проявления в обоих случаях для него одинаковы - он видит, что  в Мониторе, как и раньше, срабатывает правило "Н" или "Т" и для обновления нужных страниц ему надо их отключить/исправить!
« Последнее редактирование: 26 февраля 2007, 15:52:42 от DenZzz » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #26 : 26 февраля 2007, 16:39:32 »

Rick
Цитировать
Пример?
У пользователя стоит правило "." в списке "Н". Галка "игнорировать no-cache" включена. URL http://handycache.ru/component/option,com_smf/Itemid,10/ (вход на этот форум) записало в кэш. Пользователь смотрит - непорядок, не обновляется форум. И так происходит еще с десятком форумов. Он отменяет галку и ожидает обновления во всех таких случаях. Ожидает он этого на основании определения директивы no-cache - если она присутствует, то мы имеем гарантию свежести файла. Однако ничего подобного не происходит - форумы продолжают необновляться.
DenZzz
Цитировать
Так он и раньше точно также молча брался из кэша! С какой стати отключение "no-cache" должно менять порядок вещей?!
Мое "файл молча возьмется из кэша" и твое "точно так же брался" - это все об одном и том же - о том, как НС работает сейчас.
Цитировать
Почему у пользователя отключение "no-cache" должно ассоциироваться с обязательным обновлением файла, если он даже не знает какие сайты кэшировались этой опцией, а какие нет?!
А для чего ж эта галка существует, если ни один пользователь по твоей логике не может узнать, что именно с помощью нее кэшируется?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #27 : 26 февраля 2007, 20:40:38 »

У пользователя стоит правило "." в списке "Н". Галка "игнорировать no-cache" включена. URL http://handycache.ru/component/option,com_smf/Itemid,10/ (вход на этот форум) записало в кэш. Пользователь смотрит - непорядок, не обновляется форум. И так происходит еще с десятком форумов. Он отменяет галку и ожидает обновления во всех таких случаях. Ожидает он этого на основании определения директивы no-cache - если она присутствует, то мы имеем гарантию свежести файла. Однако ничего подобного не происходит - форумы продолжают необновляться.

А как же твой "неопытный" пользователь, включивший no-cache "по незнанию, недопониманию, недосмотру", вообще поймет, что все его беды от этой опции, если он даже не видит, когда эта опция срабатывала!
Он видит в Мониторе, что постоянно срабатывает правило в списке "Н" и больше ничего! Именно его он обвинит во всех грехах и полезет первым делом его править или писать исключения!

Цитировать
А для чего ж эта галка существует, если ни один пользователь по твоей логике не может узнать, что именно с помощью нее кэшируется?

Ну ты же не знал, почему у тебя не все сайты пишутся в кэш и для чего существует эта опция "Игнорировать No-cache"! Я тебе подсказал! Так и большинство неопытных пользователей не знает ее смысла и ждет совета от опытных!

А если сейчас изменить логику работы этой опции, как ты предлагаешь, то тогда мне придется еще всем объяснять, почему на некоторых файлах не срабатывает список "Н" или "Т", хотя нужное правило там есть и файлы лежит в кэше!
В общем, те же яйца - вид сбоку! Подмигивающий
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #28 : 26 февраля 2007, 21:08:39 »

DenZzz
Цитировать
А если сейчас изменить логику работы этой опции, как ты предлагаешь, то тогда мне придется еще всем объяснять, почему на некоторых файлах не срабатывает список "Н" или "Т", хотя нужное правило там есть и файлы лежит в кэше!
Если сейчас изменить логику этой опции как предлагаю я, то любой "неопытный" сможет прочесть принцип ее работы в стандарте. А сейчас я, зная как она должна работать согласно стандарту, вынужден спрашивать у тебя, т.к. она работает совершенно не так как описано в rfc2616.
Собственно, сейчас в НС вовсе не тот "no-cache" из rfc2616, а просто "однофамилец" - совершенно другая вещь. И понять это пользователю самому чрезвычайно тяжело. Зачем все так сделано? По-моему, это просто ошибка, подлежащая исправлению вместе с вводом индекса, где no-cache будет сохраняться.
« Последнее редактирование: 26 февраля 2007, 21:13:19 от Михаил » Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #29 : 26 февраля 2007, 21:28:53 »

Если сейчас изменить логику этой опции как предлагаю я, то любой "неопытный" сможет прочесть принцип ее работы в стандарте.

А списки "Н" и "Т" вообще в стандартах не описаны! Давай их отменим, чтобы не сбивать с толку неопытного пользователя, начитавшегося стандартов!  Прикольно

Ты серьезно считаешь, что неопытный пользователь первым делом полезет в многостраничный англоязычный стандарт, если у него сил не хватило даже прочесть один абзац с описанием опции "no-cache" в Документации?!

Да, страшно далеки мы от народа... Крутой
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #30 : 26 февраля 2007, 21:55:22 »

Если сейчас изменить логику этой опции как предлагаю я, то любой "неопытный" сможет прочесть принцип ее работы в стандарте.
И сейчас "любой" может прочитать в стандарте, что No-Cache запрещает кэширование, и этот же "любой" в состоянии сообразить, что если No-Cache запрещает кэширование, то включение опции "Игнорировать No-Cache" приведет к сохранению No-Cache'ного контента в кэш со всеми вытекающими последствиями. А последствия эти одинаковы для всего что есть в кэше.

У пользователя стоит правило "." в списке "Н". Галка "игнорировать no-cache" включена. URL http://handycache.ru/component/option,com_smf/Itemid,10/ (вход на этот форум) записало в кэш. Пользователь смотрит - непорядок, не обновляется форум.
После этого он смотрит в Монитор и видит причину необновления - свое правило в Н. Причина ясна, как исправить тоже.

Я тебе как-то приводил пример с оформлением форума: загружается в кэш страница(ы) форума, затем в "Т" включается правило для картинок - и никаких лишних аватаров, никаких аттачей не видим - красота. Твое "исправление" из этой красоты делает полный бардак: никакой логики, и никаких средств диагностировать почему то, что согласно "Т" должно браться из кэша, раз за разом берется из инета.

Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #31 : 26 февраля 2007, 22:29:02 »

DenZzz
Цитировать
А списки "Н" и "Т" вообще в стандартах не описаны! Давай их отменим, чтобы не сбивать с толку неопытного пользователя, начитавшегося стандартов!
Твоя логика мне непонятна. Списки "Т" и "Н" в стандартах не описаны, поэтому то, что в стандарте описано и четко регламентировано мы должны сделать по-другому. При этом мы оставляем у этого другого то же самое наименование (no-cache). Но это не тот no-cache, который в стандарте, а тот, который надо спросить у "опытного пользователя". Так, что ли?
Цитировать
Ты серьезно считаешь, что неопытный пользователь первым делом полезет в многостраничный англоязычный стандарт, если у него сил не хватило даже прочесть один абзац с описанием опции "no-cache" в Документации?!
Безусловно считаю. Иначе ему просто неоткуда узнать, а что же такое no-cache и для чего нужна опция.
Rick
Цитировать
А последствия эти одинаковы для всего что есть в кэше.
С чего это они одинаковы? Что ты имеешь ввиду?
Цитировать
Твое "исправление" из этой красоты делает полный бардак: никакой логики, и никаких средств диагностировать почему то, что согласно "Т" должно браться из кэша, раз за разом берется из инета.
Ты не прав. Логика железобетонная: пользователь доверяет определение того, что ни при каких условиях не должно показываться несвежим, серверу. А вот все остальное (в отношении чего сервер ему не дает подсказки) он кэширует по собственному разумению. Очень удобно.
А вот если он не доверяет серверу (гулька включена), тогда и для таких URL будет браться пользовательский способ кэширования.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #32 : 27 февраля 2007, 00:37:51 »

Твоя логика мне непонятна. Списки "Т" и "Н" в стандартах не описаны, поэтому то, что в стандарте описано и четко регламентировано мы должны сделать по-другому.
DenZzz на разные лады пытается донести до тебя мысль, что именно нарушение требований стандарта и дает нам возможность экономить трафик и время. Если все делать по стандарту - HC не нужен, достаточно пользовать нормальный браузер. Но и об экономии, тогда, соответственно, нужно забыть.

Цитировать
При этом мы оставляем у этого другого то же самое наименование (no-cache). Но это не тот no-cache, который в стандарте, а тот, который надо спросить у "опытного пользователя".
Тот же самый No-Cache. Никаких отличий. Именно тот самый N-C который "по стандарту" и игнорируется при записи в кэш. Именно при записи в кэш! Не при чтении из кэша, не при последующей обработке, не при очистке кэша - опция влияет именно и только на то, что записывается в кэш.

Цитировать
С чего это они одинаковы? Что ты имеешь ввиду?
Какими бы путями файл не появился в кэше его чтение из кэша происходит согласно списков правил.

Цитировать
Логика железобетонная: пользователь доверяет определение того, что ни при каких условиях не должно показываться несвежим, серверу. А вот все остальное (в отношении чего сервер ему не дает подсказки) он кэширует по собственному разумению. Очень удобно.
Ну и логика... Кто верит в Магомеда, кто в Аллаха, кто в Иисуса. Кто ни во что не верит - только в Сервер назло всем...
В НС не надо играть в "верю-не верю" - нужно иметь соответствующие правила в Н/Т. А с твоей "железобетонной логикой" обычный принцип "сохранил в кэш - читаешь сохраненное без обращений к серверу" летит в тар-тарары. Потому-что с одной стороны начинается угадайка "верю-не верю", с другой это никак не скажется на контенте не имеющем N-C в заголовках - железобетонный ералаш в головах у пользователя готов.
Дык что по-твоему проще/удобней: анализировать строки в Мониторе и поддерживать правила в Н/Т в нужном виде или анализировать логи и выяснять с N-C тот или иной URL или без и как ему "верить" и при этом все-равно следить за содержанием списков Н/Т?

Цитировать
А вот если он не доверяет серверу (гулька включена), тогда и для таких URL будет браться пользовательский способ кэширования.
Оставь вопросы веры и обратись к материальным понятиям: запись в кэш и чтение из кэша. Опция игнорирования N-C влияет именно и только на запись в кэш. На чтение из кэша она не влияет и не будет влиять. Чтением из кэша управляют списки Н/Т. Все логично и никаких противоречий.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #33 : 27 февраля 2007, 01:15:19 »

Rick
Цитировать
Опция игнорирования N-C влияет именно и только на запись в кэш. На чтение из кэша она не влияет и не будет влиять.
Тогда надо назвать эту опцию ее как угодно, только не "Игнорирование no-cache". Но тогда ее полезность близится к нулю. Настоящая no-cache работает с точностью до наоборот: влияет только на чтение из кэша и никак не влияет на запись туда. Т.е. то, игнорируем мы ее или нет, никак не должно влиять на запись в кэш и обязано влиять на чтение. То, что делает НС сейчас - это, на мой взгляд, логическая ошибка.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #34 : 27 февраля 2007, 01:26:08 »

Настоящая no-cache работает с точностью до наоборот: влияет только на чтение из кэша и никак не влияет на запись туда.
Заблуждение! Перечитай стандарт. Подсказка: читай не только про Pragma (HTTP 1.0), но и про Cache-Control (HTTP 1.1). Ищи что именно разрешается кэшировать.

Все забываю спросить: ты не против, если я переименую топик в соответствии с обсуждаемым вопросом в "Опция "Игнорировать No-Cache"?
« Последнее редактирование: 27 февраля 2007, 01:38:26 от Rick » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #35 : 27 февраля 2007, 01:30:46 »

Rick
Цитировать
Перечитай стандарт.
Что "норд-вест"? Пальцем покажи! (анекд.) Подмигивающий
Это видимо что-то отличное от того, что я приводил здесь.

Цитировать
Все забываю спросить: ты не против, если я переименую топик в соответствии с обсуждаемым вопросом в "Опция "Игнорировать No-Cache"?
Мистика! Чтение мыслей какое-то Улыбка Сижу и думаю: "В следующем посте надо попросить сменить название темы".
« Последнее редактирование: 27 февраля 2007, 01:49:00 от Михаил » Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #36 : 27 февраля 2007, 01:58:20 »

Что "норд-вест"? Пальцем покажи! (анекд.) Подмигивающий
Показываю: Улыбка
13.9.1. Что допускает кэширование?
По умолчанию отклик допускает кэширование, если требования метода запроса, поля заголовка запроса и код статуса отклика указывают на то, что кэширование не запрещено. Раздел 12.4 обобщает эти рекомендации для кэширования. Следующие Cache-Control директивы отклика позволяют исходному серверу переписать стандартные требования по кэшируемости:
public
Указывает, что отклик может кэшироваться любым кэшем, даже если он в норме не кэшируем или кэшируем только в кэшах индивидуального пользования. (См. также об авторизации в разделе 13.8.)
private
Указывает, что весь или часть сообщения отклика предназначена для одного пользователя и не должна быть записана кэшем коллективного пользования. Это позволяет исходному серверу заявить о том, что специфицированные части отклика предназначены только для одного пользователя, и он не может отсылаться в ответ на запросы других пользователей. Частный кэш может кэшировать такие отклики.
Замечание. Это использование слова частный (private) определяет только возможность кэширования и не гарантирует конфиденциальности для содержимого сообщения.
no-cache
Указывает, весь или фрагмент сообщения-отклика не должны кэшироваться, где бы то ни было. Это позволяет исходному серверу предотвратить кэширование даже для кэшей, сконфигурированных для рассылки устаревших откликов.
Замечание. Большинство кэшей HTTP/1.0 не распознают и не исполняют эту директиву.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #37 : 27 февраля 2007, 02:16:51 »

Rick
Ясно. Убогий перевод. То, что приводил я - этот же абзац в оригинале.
Перевожу дословно (может, чуть коряво):
no-cache
Если в директиве no-cache не указывается field-name, то кэш НЕ ДОЛЖЕН использовать этот ответ для удовлетворения последующего запроса без успешной проверки его (ответа) неизменности на сервере. Это позволяет серверу предотвращать кэширование даже со стороны кэшей, которые сконфигурированы возвращать устаревшие ответы на запросы клиента.

А несохранять в кэш без затрагивания вопроса о чтении оттуда должна директива no-store. Но применяется она крайне редко. В основном, когда идет речь о конфиденциальной информации.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #38 : 27 февраля 2007, 03:57:12 »

То, что приводил я - этот же абзац в оригинале.
Ишь ты, а ведь действительно тот же самый абзац. Улыбка

Цитировать
Перевожу дословно (может, чуть коряво):
Попробуем обойтись без выяснения (не)правильности перевода revalidation как "неизменность", а не "повторное получение валидного ответа": обрати внимание на слова в своем же переводе "Это позволяет серверу предотвращать кэширование...". No-Cache указывает, что не следует записывать в кэш!
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #39 : 27 февраля 2007, 10:50:28 »

Rick
Цитировать
обрати внимание на слова в своем же переводе "Это позволяет серверу предотвращать кэширование...". No-Cache указывает, что не следует записывать в кэш!
Нет. Кэширование - это шире записи в кэш. Оно включает как запись, так и последующее чтение оттуда. Здесь речь идет о том, что ввиду того, что невалидного чтения не будет не будет и кэширования.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #40 : 27 февраля 2007, 11:20:27 »

Кэширование - это шире записи в кэш. Оно включает как запись, так и последующее чтение оттуда.
Ну что за фантазии? В том же RFC2616 даны определения:

  cache
      A program's local store of response messages and the subsystem
      that controls its message storage, retrieval, and deletion.  A
      cache stores cacheable responses in order to reduce the response
      time and network bandwidth consumption on future, equivalent
      requests.  Any client or server may include a cache, though a
      cache cannot be used by a server that is acting as a tunnel.


   cacheable
      A response is cacheable if a cache is allowed to store a copy of
      the response message for use in answering subsequent requests.
      The rules for determining the cacheability of HTTP responses are
      defined in section 13.  Even if a resource is cacheable, there may
      be additional constraints on whether a cache can use the cached
      copy for a particular request.


Т.е.,
      Кэш - локальное хранение полученных данных...
      Кэшируемость - данные кэшируемы если кэш разрешает их хранение для использования в ответах  на последующие запросы...

...Здесь речь идет о том, что ввиду того, что невалидного чтения не будет не будет и кэширования.
Прям напоминает выяснение что первично: курица или яйцо...  Прикольно Запись в кэш или чтение из кэша.
« Последнее редактирование: 27 февраля 2007, 11:25:46 от Rick » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #41 : 27 февраля 2007, 11:43:03 »

Rick
Не пойму, что ты хочешь доказать пространной цитатой, что кэширование=запись в кэш? Если да, тогда ты не прав. Есть две совершенно равноправных составляющих кэширования - запись данных и их последующее чтение. Без любой из них кэширования не существует. Если ты пишешь все на диск, но никогда потом это не прочтешь - где ж тут кэширование?
no-cache и no-store позволяют регулировать каждую из этих двух составляющих по раздельности. Первая не дает кэшу читать устаревшие данные, вторая - писать на диск конфиденциальные и какие-нибудь еще. Вроде в цитате из rfc2616 все четко написано: что НЕ ДОЛЖЕН делать кэш при виде опции no-cache (не читать с диска невалидный ответ) и для чего это делается. Причем же тут курица и яйцо? Подмигивающий
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #42 : 27 февраля 2007, 12:13:19 »

Не пойму, что ты хочешь доказать...
О, хороший вопрос. Спасибо, что вовремя остановил, пока я в дебри не полез. Улыбка

Я оспариваю твое утверждение:
Тогда надо назвать эту опцию ее как угодно, только не "Игнорирование no-cache". Но тогда ее полезность близится к нулю. Настоящая no-cache работает с точностью до наоборот: влияет только на чтение из кэша и никак не влияет на запись туда. Т.е. то, игнорируем мы ее или нет, никак не должно влиять на запись в кэш и обязано влиять на чтение. То, что делает НС сейчас - это, на мой взгляд, логическая ошибка.
Я за то, чтобы ничего не менять - то, как есть, вполне понятно и соответствует и логике (что ожидаем от опции) и результатам (что получаем).
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #43 : 27 февраля 2007, 12:29:57 »

Rick
Я считаю, что оспариваемое тобой мое утверждение абсолютно правильное, т.к. основано на определении no-cache в стандарте. И наоборот, твое утверждение о влиянии no-cache на запись в кэш несправедливо и не имеет обоснования. Подмигивающий
"То как есть" - как раз непонятно, что и вызвало вопрос, инициированный в данной теме. Непонятно, почему "мы ожидаем" от опции того, чего она делать ни в коем случае не должна.
Даю несколько дополнительных ссылок:
Цитировать
Запрос включает в себя директиву управления кэшем "no-cache" или, для совместимости с клиентами HTTP/1.0, "Pragma: no-cache". В запросе с директивой no-cache может не быть никаких имен полей. Сервер не должен использовать кэшированную копию при ответе на этот запрос. Здесь.
Цитировать
no-cache   Кэшированный ответ не должен использоваться без предварительной его валидации. Здесь.
Цитировать
”Pragma: no-cache” means the browser should send the request
to he origin server even if it has a cached copy. This has the
same meaning as ”Cache-Control: no-cache”. Здесь.
Цитировать
A setting of "no-cache" means that the server must verify that the page is current before the browser can display it. Здесь.
Есть подозрение, что ты эти аргументы понимаешь и просто лукавишь Непонимаю
Мое итоговое мнение: нынешнее поведение опции "Игнорировать no-cache" - это баг, подлежащий обязательному исправлению.
« Последнее редактирование: 27 февраля 2007, 12:48:13 от Михаил » Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #44 : 27 февраля 2007, 13:08:45 »

Есть подозрение, что ты эти аргументы понимаешь и просто лукавишь Непонимаю
Прикольно
ОК. Соглашаюсь с тем, что в стандарте нет явного указания, что No-Cache как-то явно влияет на запись в кэш. Эта директива обязывает всегда получать новый ответ (файл) с сервера, а не читать его из кэша.
При этом:
1. Директива N-C никак не разрешает/запрещает запись в кэш (т.е. записью вообще не управляет Подмигивающий), а требует не использовать кэшированную копию. Сам ответ кэшируется и используется браузерами, например, в автономном режиме, а Оперой и при переходе по истории вперед-назад (FF в этом тупее - игнорирует N-C только в автономке).
2. В HC опция называется именно и только как "Игнорировать No-Cache" - ни больше, ни меньше. Дык в чем ты углядел ошибку/баг? Т.е. хоть директива и предписывает получение с сервера новой копии файла, он будет взят из кэша. Все как ты хочешь и доказываешь: директива N-C запрещает чтение из кэша, а опция "игнорировать..." допускает это чтение, и в обоих случаях ответ кэшируется - в чем противоречие, что тебе кажется не понятным, и в чем же ты углядел ошибку?  Шокирован
« Последнее редактирование: 27 февраля 2007, 13:14:41 от Rick » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #45 : 27 февраля 2007, 14:02:19 »

Rick
Цитировать
в чем противоречие, что тебе кажется не понятным, и в чем же ты углядел ошибку?
Ошибка в том случае, когда галка отключена (т.е. я не хочу игнорировать no-cache). Тогда НС почему-то:
- запрещает запись в кэш;
- не проверяет валидность файла на сервере.
А должен:
- писать в кэш на общих основаниях;
- проверять запросом к серверу валидность, если файл есть в кэше. Если валиден - выдавать из кэша, нет - тянуть из интернет.
« Последнее редактирование: 27 февраля 2007, 14:20:29 от Михаил » Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #46 : 27 февраля 2007, 14:07:26 »

Т.е. когда сервер отдает директиву no-cache, HC действовать  с точностью до наоборот?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #47 : 27 февраля 2007, 14:17:40 »

Т.е. когда сервер отдает директиву no-cache, HC действовать  с точностью до наоборот?
Да. В случае отключенной галки.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #48 : 27 февраля 2007, 14:48:33 »

Ошибка в том случае, когда галка отключена (т.е. я не хочу игнорировать no-cache). Тогда НС почему-то:
- запрещает запись в кэш;
- не проверяет валидность файла на сервере... проверять запросом к серверу валидность, если файл есть в кэше. Если валиден - выдавать из кэша, нет - тянуть из интернет.
1. В этом случае HC не обязан писать кэш, однако для автономного режима надо-бы. Тем не менее я бы хотел увидеть лог подтверждающий твое утверждение. На примере того же руборда (или другого сервера).
2. Что-то вообще не понятное. С одной стороны ты явно путаешь revalidation с If-Modified-Since, с другой - какой к бесу If-Modified-Since если файла нет в кэше?
Проверить валидность - не значит проверить неизменность: N-C однозначно предписывает получить новый ответ (загрузить файл с сервера) - никаких If-Modified-Since, если ты это подразумеваешь под "проверкой валидности".
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #49 : 27 февраля 2007, 15:29:54 »

Rick
Цитировать
я бы хотел увидеть лог подтверждающий твое утверждение
Адрес.
Лог 1 сделан при выключенной "Игнорировать no-cache" и праввиле "." в списке "З". Видим, что запись в кэш не ведется. Это же подтвердит и монитор, если пойдешь по этому адресу. В папке кэша файл не появится/перепишется.
Лог 2 сделан при отключенной опции "Игнорировать no-cache" при наличии этого файла в кэше и правила "." в списке "Н". Видим, что никакого запроса валидации к серверу не уходит. Файл просто берется из кэша, что подтверждает и запись в мониторе.
Цитировать
Проверить валидность - не значит проверить неизменность
Почему? Как раз это и означает. Надо проверить ETag или Last-Modified. На выбор.

* log 1.rar (1.63 Кб - загружено 25 раз.)
* log2.rar (1.34 Кб - загружено 25 раз.)
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #50 : 27 февраля 2007, 15:33:24 »

Тогда я перестал что-либо понимать. Буду перечитывать ветку....

Логичней было бы перенести блок настроек:
- Сохранять www. для URL
- Не сохранять файлы меньше ... Байт
- Не сохранять файлы больше ... КБайт
- Игнорировать No-Cache
- Удалять ссылку на порт 80 из имени файла в кэше
в шапку списка "Запись в кэш", как уже кто-то предлагал...

Помню. Я и предлагал. Совсем не в том месте сейчас эти настройки.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #51 : 27 февраля 2007, 15:59:42 »

Адрес.
Лог 1 сделан при выключенной "Игнорировать no-cache" и праввиле "." в списке "З". Видим, что запись в кэш не ведется. Это же подтвердит и монитор, если пойдешь по этому адресу. В папке кэша файл не появится/перепишется.
Что ж, доверяй, но проверяй: пошел по этому адресу. Опция N-C включена, в З правило ".*", и чтобы долго не мудрствовать просто переименовал текущую папку кэша.
Итого, имею:
Код:
27.02.2007 15:37:11 # 10808: Connection from local/127.0.0.1
 
27.02.2007 15:37:11 # 10808 >>> URL: http://forum.ru-board.com/forum.cgi?forum=35
GET http://forum.ru-board.com/forum.cgi?forum=35 HTTP/1.0
User-Agent: Opera/9.10 (Windows NT 5.1; U; ru)
Host: forum.ru-board.com
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Accept-Encoding: gzip, deflate
Referer: http://handycache.ru/component/option,com_smf/Itemid,10/topic,253.msg2252/boardseen,1/
Cookie: ...
Cookie2: ...
Proxy-Connection: close

27.02.2007 15:37:11 # 10808: DNS resolve forum.ru-board.com --> 72.232.29.238 (From cache)
 
27.02.2007 15:37:11 # 10808:  Outbound Connection
 
27.02.2007 15:37:15 # 10808 <<< URL: http://forum.ru-board.com/forum.cgi?forum=35
HTTP/1.1 200 OK
Server: nginx/0.3.15
Date: Tue, 27 Feb 2007 12:37:17 GMT
Content-Type: text/html; charset=windows-1251
Connection: close
Set-Cookie: ...
Set-Cookie: ...
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Pragma: no-cache
Cache-control: no-cache, must-revalidate, no-store
Content-Encoding: gzip

27.02.2007 15:37:15 # 10808:  Outbound Disconnection
В кэше: ...\forum.ru-board.com\forum.cgi^\forum=35 (gzip)
В Мониторе: 27.02.2007/15:37:11 local http://forum.ru-board.com/forum.cgi?forum=35  12696  2 "200 OK gzip" З.1 З.1 (Запись в кэш): .*

Ну дык, э-э-э... что не так?

Цитировать
Цитировать
Проверить валидность - не значит проверить неизменность
Почему? Как раз это и означает. Надо проверить ETag или Last-Modified. На выбор.
С чего ж ты так решил то? Читай стандарт! Cache-Control: no-cache - to force any intermediate caches to obtain a new copy from the origin server. Никаких проверок - только новая загрузка!
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #52 : 27 февраля 2007, 16:29:04 »

Поспешишь - людей насмешишь. Грустный
Лог 1 сделан при выключенной "Игнорировать no-cache" и праввиле "." в списке "З". Видим, что запись в кэш не ведется. Это же подтвердит и монитор, если пойдешь по этому адресу. В папке кэша файл не появится/перепишется.
Я то выше привел случай для включенной опции N-C.

Да, подтверждаю, при выключенной опции N-C запись в кэш не производится. Баг ли это? Спорно, но в общем я склонен согласиться: что смотреть в автономке, если запись в кэш не производится?
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #53 : 27 февраля 2007, 17:09:53 »

- проверять запросом к серверу валидность, если файл есть в кэше. Если валиден - выдавать из кэша, нет - тянуть из интернет.

Ни разу не видел, чтобы сервер на динамический контент, который формируется при каждом запросе клиента и поэтому специально сопровождается директивой "no-cache", велел клиенту брать файл из кэша!

Он всегда ПОВТОРНО формирует и посылает файл клиенту! Никакого "304 Not Modified" на клиентский запрос с "ETag" и "If-Modified-Since" здесь невозможно в принципе!

К слову, HC при наличии файла в кэше вставляет этот "If-Modified-Since" во ВСЕ запросы к серверу, в т.ч. и в те, которые пришли с директивой "no-cache", однако я не припомню случая, чтобы сервер хоть раз разрешил HC взять такой файл из кэша!

Это легко проверить на нашем форуме или на ру-борде - выбери самую старую тему, включи опцию "Игнорировать No-сache", чтобы страница форума записалась в кэш и попробуй 10 раз подряд обновить страницу - все 10 раз повторно загрузишь с сервера эту же не изменившуюся страницу, хотя в запросах везде был "If-Modified-Since"!

Приведи пример реальной страницы, где это не так!

В общем, "ревалидация" при директиве "no-cache" всегда означает ПОВТОРНУЮ ЗАГРУЗКУ файла! Поэтому сервер и говорит клиенту "no-cache", что утрированно означает: "Не кэшируй, т.к. все равно придется грузить файл снова!"... Улыбка
« Последнее редактирование: 27 февраля 2007, 17:16:19 от DenZzz » Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #54 : 27 февраля 2007, 17:26:58 »

Почитал по русски
http://zeus.sai.msu.ru:7000/nets/semenov/4/45/http4561.shtml
Нигде нет указания кэшировать данные с директивой No-сache
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #55 : 27 февраля 2007, 17:40:55 »

Чтобы были волки сыты и овцы целы, предлагаю:

  • перенести опцию в настройки списка Запись в кэш.
  • переименовать в Не сохранять объекты с директивой no-cache

Если раньше надо было галку включать, то теперь для такого же эффекта ее надо будет выключить.
Логика работы HC не изменится. И никто не обвинит в неправильном использовании понятия no-cacheУлыбка
« Последнее редактирование: 27 февраля 2007, 17:48:18 от Сергей » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #56 : 27 февраля 2007, 19:02:36 »

Rick
Цитировать
С чего ж ты так решил то? Читай стандарт! Cache-Control: no-cache - to force any intermediate caches to obtain a new copy from the origin server. Никаких проверок - только новая загрузка!
Вот не пойму, для чего хитрить? Здесь говорится не о no-cache в ответе сервера, а о no-cache в запросе клиента. Давай будем считать вопрос о смысле no-cache в ответе исчерпанным приведенной несколькими постами выше цитатой из rfc2616. Подмигивающий
DenZzz
Цитировать
В общем, "ревалидация" при директиве "no-cache" всегда означает ПОВТОРНУЮ ЗАГРУЗКУ файла! Поэтому сервер и говорит клиенту "no-cache", что утрированно означает: "Не кэшируй, т.к. все равно придется грузить файл снова!"...
Даже не хочется искать такой сервер. Потому как достаточно представить на пути от пользователя к серверу любой кэш-прокси, поддерживающий игнорирование no-cache (пусть это будет для примера сквид с его refresh_pattern ignore-no-cache). Когда эта опция у вышестоящего прокси будет включена, он будет давать одинаковые ответы с no-cache на каждый наш запрос. Вот тут-то нам и надо будет брать из своего кэша.
Никак в толк не возьму, из-за чего нам надо пытаться всячески уклоняться от той трактовки no-cache, которая обозначена в стандарте? Что это нам дает кроме лишней головной боли от несоответствия терминов?
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #57 : 27 февраля 2007, 20:24:46 »

Вот не пойму, для чего хитрить? Здесь говорится не о no-cache в ответе сервера, а о no-cache в запросе клиента. Давай будем считать вопрос о смысле no-cache в ответе исчерпанным приведенной несколькими постами выше цитатой из rfc2616. Подмигивающий
О каком no-cache в запросе клиента вообще идет речь? Откуда оно там может взяться? no-cache присутствует в ответе сервера для того чтобы никакие прокси и т.д. (кроме нарушающих в данном случае стандарты) НЕ кешировали этот запрос. Так как HC нарушает в этом месте стандарт по нашему желанию, то он и кеширует и отдает такие запросы в соответствии с тем как мы его настроили (по спискам). Если галочка убрана - действует в соответствии со стандартом и НЕ кеширует этот запрос и НЕ отдает его из кеша. Если при это не будет работать автономный режим - значит это наше желание/ошибка пытаться использовать автономный режим с такой настройкой.

Потому как достаточно представить на пути от пользователя к серверу любой кэш-прокси, поддерживающий игнорирование no-cache (пусть это будет для примера сквид с его refresh_pattern ignore-no-cache).
Этот прокси сервер будет нарушением стандарта и в идеальном мире вообще не должен существовать.
Когда эта опция у вышестоящего прокси будет включена, он будет давать одинаковые ответы с no-cache на каждый наш запрос. Вот тут-то нам и надо будет брать из своего кэша.
Может быть наоборот он будет давать ответы БЕЗ no-cache? И зачем нам вообще НС если у нас выше будет такой squid? Если он кеширует, то как бы мы не ставили/убирали "Игнорировать no-cache" все равно получим устаревшие данные (из кеша squid).
В общем сейчас все делается именно так как и следует: с галкой Н-С игнорируем и пишем все/читаем по спискам, без галки - не пишем/обновляем с сервера.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #58 : 27 февраля 2007, 20:41:57 »

серега_ang
Цитировать
О каком no-cache в запросе клиента вообще идет речь?  Откуда оно там может взяться?
Не понял.
Цитировать
Этот прокси сервер будет нарушением стандарта и в идеальном мире вообще не должен существовать.
Но мы то живем в реальном мире Подмигивающий Вместе с НС и Squid. Которые не будут, а уже давно используют нарушение стандарта в благих целях.
Цитировать
И зачем нам вообще НС если у нас выше будет такой squid?
Проблема в том, что мы не выбираем то, что выше нас. Мы можем только подстроиться под это. В данном случае "подстроиться" означает кэшировать то, что не кэшируется сквидом, а по нашему мнению кэшироваться должно. В конце концов мы можем и не знать про этот вышестоящий сквид.
Цитировать
В общем сейчас все делается именно так как и следует: с галкой Н-С игнорируем и пишем все/читаем по спискам, без галки - не пишем/обновляем с сервера.
"Следует" откуда? Обозначь конкретно, плиз.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #59 : 27 февраля 2007, 21:42:20 »

серега_ang
Цитировать
О каком no-cache в запросе клиента вообще идет речь?  Откуда оно там может взяться?
Не понял.

Ты написал:  Здесь говорится не о no-cache в ответе сервера, а о no-cache в запросе клиента.
Вопрос: причем тут какой-то no-cache в запросе клиента? Если это опция устанавливаемая сервером?
Цитировать
Проблема в том, что мы не выбираем то, что выше нас. Мы можем только подстроиться под это. В данном случае "подстроиться" означает кэшировать то, что не кэшируется сквидом, а по нашему мнению кэшироваться должно. В конце концов мы можем и не знать про этот вышестоящий сквид.
Если сквид уже игнорирует no-cache, то мы на него повлиять не можем, правильно? В этом случае не зависимо от наших настроек файлы могут оказаться не актуальными, значит их можно брать из своего кеша, не тратя времени на запрос в сквид и далее. Так и происходит согласно правилам, если Игнорировать no-cache включена. Если выключена и no-cache есть - значит мы запрашиваем файл с сервера (независимо от того как настроены вышестоящие серверы, кеши, независимо от того есть ли файл в нашем кеше, какие правила в списках и т.д.).
Цитировать
В общем сейчас все делается именно так как и следует: с галкой Н-С игнорируем и пишем все/читаем по спискам, без галки - не пишем/обновляем с сервера.
"Следует" откуда? Обозначь конкретно, плиз.
Следует из задумки автора, ожиданий пользователей, приведенного мною описания алгоритма. Так сделано и так работает и нравится пользователям и не вызывает вопросов (если подумать и разобраться - а без этого никуда). И так останется я думаю. Тем более что у 80% (цифра из головы, но интуиция мне подсказывает что она верна) пользователей галочка включена и все работает как надо.
ЗЫ: 90% пользователей используют word на 10%.
ЗЗЫ: ХендиКеш - не проще ворда. А происходящие процессы - сложнее.
ЗЗЗЫ: посмотрите на Вилли, ему вряд ли поможет любое упрощение или изменение, без длительного обучения. на компьютере в домене (значит на работе), есть траффик компрессор, мастон, хендикеш, и в сети есть сквид, и парень не знает как "пройтись раром", "что такое dzip" и думаю не обидится если опция "Игнорировать no-cache" будет называться "Контакт с марсианами". И таких большинство. Подумайте о них, тех кому все настроил "опытный пользователь в роли стандарта". Предлагая - думай и о тех, и о других.
Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #60 : 27 февраля 2007, 21:47:03 »

ЗЫ: 90% пользователей используют word на 10%... ЗЗЫ: ХендиКеш - не проще ворда... ЗЗЗЫ: посмотрите на Вилли...
Даже комментировать не надо Улыбка +1! Крутой
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #61 : 27 февраля 2007, 22:05:07 »

Ты написал:  Здесь говорится не о no-cache в ответе сервера, а о no-cache в запросе клиента.
Вопрос: причем тут какой-то no-cache в запросе клиента? Если это опция устанавливаемая сервером?
Сказанное Михаилом относилось к приведенной мною цитате из RFC2616:
Цитировать
Cache-Control: no-cache - to force any intermediate caches to obtain a new copy from the origin server.
в которой речь действительно идет о директиве Cache-Control: no-cache включаемой именно в запрос клиента. :Улыбка /Надо бы добавить смайлик с шаркающей ножкой./
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #62 : 27 февраля 2007, 22:09:27 »

Теперь другой вопрос - когда успели перейти от обсуждения опции no-cache, которую добавляет сервер и которую собственно игнорирует обсуждаемая опция, к запросу клиента? Или я чего-то недопонимаю?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #63 : 27 февраля 2007, 22:12:10 »

серега_ang
Цитировать
Вопрос: причем тут какой-то no-cache в запросе клиента? Если это опция устанавливаемая сервером?
В рассмотрении нашего случая - ни при чем. На это я и указал своим постом. А в том, что это исключительно опция, посылаемая сервером, ты глубоко заблуждаешься. Ее в равной степени может послать и клиент.
Цитировать
Если выключена и no-cache есть - значит мы запрашиваем файл с сервера (независимо от того как настроены вышестоящие серверы, кеши, независимо от того есть ли файл в нашем кеше, какие правила в списках и т.д.).
А его (наш запрос к серверу) перехватывает сквид и решает, что делать дальше по своему усмотрению. В частности, может отдать нам старый контент, а может взять с сервера обновленный.
Цитировать
Если выключена и no-cache есть - значит мы запрашиваем файл с сервера
Еще раз вопрос: из-за чего нам надо пытаться всячески уклоняться от той трактовки no-cache, которая обозначена в стандарте? Там английским по белому написано, что если no-cache есть, то мы не можем выдать файл из кэша без его валидации с сервером.
А с валидацией - можем. Почему, по твоим словам, надо обязательно тянуть его с сервера и ни в коем случае не брать из кэша? Для каких целей мы пытаемся отступить в этом моменте от стандарта? Я этих целей не вижу. Может, нам сложно послать запрос с If-Modified-Since вместо просто запроса? - не думаю. Что мы теряем?
Теперь другой вопрос - когда успели перейти от обсуждения опции no-cache, которую добавляет сервер и которую собственно игнорирует обсуждаемая опция, к запросу клиента? Или я чего-то недопонимаю?
Недопонимаешь. Rick привел цитату из rfc2616, а я ответил, что она к нашему случаю не относится, т.к. говорит об использовании no-cache при запросе клиента. Запрос клиента ни до, ни после этого не обсуждается.
« Последнее редактирование: 27 февраля 2007, 22:24:30 от Михаил » Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #64 : 27 февраля 2007, 22:31:02 »

В рассмотрении нашего случая - ни при чем.
Все понял. Проехали.
Цитировать
Если выключена и no-cache есть - значит мы запрашиваем файл с сервера
Еще раз вопрос: из-за чего нам надо пытаться всячески уклоняться от той трактовки no-cache, которая обозначена в стандарте? Там английским по белому написано, что если no-cache есть, то мы не можем выдать файл из кэша без его валидации с сервером.
А с валидацией - можем. Почему, по твоим словам, надо обязательно тянуть его с сервера и ни в коем случае не брать из кэша? Для каких целей мы пытаемся отступить в этом моменте от стандарта? Я этих целей не вижу. Может, нам сложно послать запрос с If-Modified-Since вместо просто запроса? - не думаю.
Ты предлагаешь добавлять If-Modified-Since? И все? При том что 100% серверов ответят - модифиед и отдадут файл еще раз. Особенно так любят делать сайты зарабатывающие деньги на рекламе - они уж везде понапихают no-cache  и в прагму и мета-теги и т.д. лишь бы все обновлялось. Об этом весь топик? А разве нет:
Цитировать
Особенно при включенной опции "Добавить If-Modified-Since при наличии файла в кэше".
Это случайно не то?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #65 : 27 февраля 2007, 22:51:19 »

Ты предлагаешь добавлять If-Modified-Since? И все? При том что 100% серверов ответят - модифиед и отдадут файл еще раз. Особенно так любят делать сайты зарабатывающие деньги на рекламе - они уж везде понапихают no-cache  и в прагму и мета-теги и т.д. лишь бы все обновлялось. Об этом весь топик?
Нет, не об этом весь топик. Впечатление, что ты его не читал, а отталкиваешься только от последних постов без их связи со всем предыдущим. Непонимаю

Резюмирую. Сейчас при отключенной опции "Игнорировать no-cache" НС:
- запрещает запись файла в кэш, чего делать не должен;
- когда файл есть в кэше и подпадает под правила списка "Т" или "Н", НС молча отдает его из кэша, а должен предварительно проверить его валидность на сервере: если не валиден - не отдавать из кэша, а тянуть из сети.
Соответственно этому предлагаю изменить работу НС при отключенной опции.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #66 : 27 февраля 2007, 23:01:57 »

Нет, не об этом весь топик. Впечатление, что ты его не читал, а отталкиваешься только от последних постов без их связи со всем предыдущим. Непонимаю
Я топик прочитывал почти полностью перед каждым постом, только взаимосвязи между постами очень уж расплывчатые Подмигивающий
Цитировать
- запрещает запись файла в кэш, чего делать не должен;
почему не должен? Зачем в кеше файлы, которые де-факто никогда не будут загружены из кеша? Хочешь чтобы такие файлы загружались - опцию on. Хочешь кеш свободный от лишних файлов - off.
Цитировать
- когда файл есть в кэше и подпадает под правила списка "Т" или "Н", НС молча отдает его из кэша, а должен предварительно проверить его валидность на сервере: если не валиден - не отдавать из кэша, а тянуть из сети.
C этим можно согласиться, только у меня вопрос, а разве сейчас НС так не делает?
Вот сейчас проверил на этом форуме - файлы в кеше есть, опция отключена, HC исправно добавляет if-modified-since во все исходящие запросы, сервер также исправно выдает ответ 200 OK... Могу кусок лога приложить )
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #67 : 27 февраля 2007, 23:14:32 »

Цитировать
почему не должен? Зачем в кеше файлы, которые де-факто никогда не будут загружены из кеша? Хочешь чтобы такие файлы загружались - опцию on. Хочешь кеш свободный от лишних файлов - off.
1. Почему "никогда"? В автономном режиме, например, должны грузиться из кэша легко и непринужденно. Если стоит внешний кэш типа сквида с включенным игнорированием no-cache, то тоже должны грузиться из нашего кэша. Вот тебе два реальных примера. Последний, правда, слегка притянут в плане своей малораспространенности, но исключать и его нельзя Подмигивающий
2. "Не должен", потому что это не соответствует определению директивы no-cache - она никак не должна влиять на запись в кэш. Если уж хочется так сделать - надобно придумать этому всему совершенно другое название (например, опция "не писать в кэш URL с директивой no-cache"). Но куда тогда деть примеры из п.1? Что мы будем делать в автономке?
Цитировать
C этим можно согласиться, только у меня вопрос, а разве сейчас НС так не делает?
Не делает.
« Последнее редактирование: 27 февраля 2007, 23:21:33 от Михаил » Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #68 : 27 февраля 2007, 23:33:22 »

1. Почему "никогда"? В автономном режиме, например, должны грузиться из кэша легко и непринужденно. Если стоит внешний кэш типа сквида с включенным игнорированием no-cache, то тоже должны грузиться из нашего кэша. Вот тебе два реальных примера. Последний, правда, слегка притянут в плане своей малораспространенности, но исключать и его нельзя Подмигивающий
2. "Не должен", потому что это не соответствует определению директивы no-cache - она никак не должна влиять на запись в кэш. Если уж хочется так сделать - надобно придумать этому всему совершенно другое название (например, опция "не писать в кэш URL с директивой no-cache"). Но куда тогда деть примеры из п.1? Что мы будем делать в автономке?
Отличные примеры, но...
1. Автономка - раз пользователь выключил опцию значит должен осознавать на что идет: на более чистый кеш и частичную _не_работу автономного режима. Потому как в случае как ты предлагаешь у нас в кеше будет много файлов, которые не будут загружаться из кеша никогда, если пользователь не пользуется автономным режимом. То есть мертвый груз, причем пользователь не сможет никак контролировать их появление и удаление.
2.  "не писать в кэш URL с директивой no-cache и игнорировать ее при запросах к удаленному серверу, полагаясь на списки Необновлять и Только из кеша, а в случае отключения опции и наличия файла в кеше будет отправлен запрос с заголовком if-modified-since" Веселый Может кусок фака в название опции добавить?

Цитировать
Не делает.
А мой делает, что я делаю не так? Опция "Добавлять if-modified-since при наличии файла в кеше стоит"? Как обнаружил что не делает?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #69 : 28 февраля 2007, 01:12:58 »

серега_ang
Цитировать
2.  "не писать в кэш URL с директивой no-cache и игнорировать ее при запросах к удаленному серверу, полагаясь на списки Необновлять и Только из кеша, а в случае отключения опции и наличия файла в кеше будет отправлен запрос с заголовком if-modified-since"  Может кусок фака в название опции добавить?
Назови тогда эту опцию, например, "last-modified". Коротко и звучно! Она имеет такое ж отношение к этому, как и к настоящему неигнорированию no-cache (т.е. никакого). И когда пользователь спросит: "приборы", НС ответит "триста!". - Что "триста?". - А что "приборы"? (анекд.) Веселый
То, что ты вынес из топика - лишь то, как я обозвал эту опцию? Очень жаль.
Цитировать
А мой делает, что я делаю не так?
Не читаешь топик. Иначе видел бы два лога, которые прилагал я на всеобщее обозрение. Непонимаю
Цитировать
1. Автономка - раз пользователь выключил опцию значит должен осознавать на что идет: на более чистый кеш и частичную _не_работу автономного режима.
"Частичная_не_работа" автономки является еще и неподконтрольной пользователю. Ведь он заранее не знает, будут ли сайты, нужные ему в автономке, содержать no-cache или нет.

Отключенный вид этой опции изначально задумывался для осуществления экономии диска во вред экономии трафика/времени, так по твоему? Отчего же это не нашло отражение в документации, где рекомендуется включать эту опцию для экономии трафика/времени и ни слова о столь замечательном режиме экономии диска при ее отключении?
На мой взгляд, исходным по замыслу автора и единственным назначением опции является дать возможность пользователю выбрать кэшировать или нет там, где этого не хочет нам позволить сервер. И не более того. А вот про экономию диска - это уже надумано прям по ходу данного топика как оправдание неправильной работе опции. Последнее подтверждается тем, что поначалу мало кто представлял четко, что no-cache не должна запрещать запись в кэш и должна запрещать чтение из него (посмотри первые посты).
И хотелось бы, чтоб некоторые прямо признали это, а не "пытались сохранить мину при плохой игре". Давайте сделаем эту опцию такой, какой она должна быть, а не рассуждать: "да, действительно, выяснили, что она работает не так как надо, "косяк", давайте теперь срочно подумаем, как это можно использовать, не исправляя". А ведь так и развивалась вся динамика топика.
Заранее прошу прощения, никого обижать не хочу. Впечатление такое у меня просто четко сложилось. И если кто выскажется на этот счет положа руку на сердце, буду признателен.
Еще хочется услышать слова автора, как оно в действительности им задумывалось.
« Последнее редактирование: 28 февраля 2007, 01:29:45 от Михаил » Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #70 : 28 февраля 2007, 02:27:43 »

Там где выложены логи смоделированы странные ситуации, особенно вторая - пользователь наложил в кеш файлов с включенной опцией, потом отключил ее, при этом у него в Н правило '.' ... Это нереально, либо пользователь просто тыкает все настройки абсолютно непонимая их смысла.
Цитировать
На мой взгляд, исходным по замыслу автора и единственным назначением опции является дать возможность пользователю выбрать кэшировать или нет там, где этого не хочет нам позволить сервер. И не более того.
ВСЕ опции рождались в муках пользователей на руборде. То есть сначала опции небыло, попросили сделать такое поведение как сейчас, сделали, назвали как показалось правильным.
И не надо говорить
Цитировать
сделаем эту опцию такой, какой она должна быть, а не рассуждать: "да, действительно, выяснили, что она работает не так как надо, "косяк", давайте теперь срочно подумаем, как это можно использовать, не исправляя".
Никто не признавал, что опция работает не правильно.
Цитировать
А ведь так и развивалась вся динамика топика.
В топике просто максимально доходчиво объясняли, что опция работает так как задумано, что "фича" это фича, а не баг. Не надо каждый раз при возникновении затруднений бросаться переделывать логику программы созданную и отработанную за 1.5 или 2 года в 5 стостраничных топиках, сотнях писем, и проверенную и используемую тысячами пользователей по-умолчанию, и сотнями пользующимися особыми заковыристыми настройками благо возможность есть.
Цитировать
Еще хочется услышать слова автора, как оно в действительности им задумывалось.
Может почитать историю?
А я эту опцию включил и забыл + Proxomitron режет все прагмы, cache-control, expires и т.д. и лишнего ничего не обновляется и старого не выдается. Нажал хоткей обхода нужного списка - получил новенький файл.
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #71 : 28 февраля 2007, 06:47:37 »

Назови тогда эту опцию, например, "last-modified". Коротко и звучно!

Чего ты добиваешься? Есть функция. Она рабоает так как задцмывалась. Я против того чтобы мы от нее отказались только из-за того, что некорректно назвали ее. Я предложил вариант исправления неточности, вот и все. Почему меня никто не поддерживает?


Цитировать
Она имеет такое ж отношение к этому, как и к настоящему неигнорированию no-cache (т.е. никакого).
Вот и предложи новую функцию. Нужную тебе. Зачем ломать то что уже есть?

 
Цитировать
И когда пользователь спросит: "приборы", НС ответит "триста!". - Что "триста?". - А что "приборы"? (анекд.) Веселый
Это больше подходит к ситуации с процентами в статистике.

Цитировать
То, что ты вынес из топика - лишь то, как я обозвал эту опцию? Очень жаль.
Я все правильно понял. Не перевирай.

Сообщить модератору   Записан
NothingAnother
Beta tester
*****

Репутация: +7/-2
Offline Offline

Сообщений: 434

Spoiler


« Ответ #72 : 28 февраля 2007, 07:54:53 »

Я предложил вариант исправления неточности, вот и все. Почему меня никто не поддерживает?
Потому, что топик выродился в некий локальный вариант битвы "остроконечников" с "тупоконечниками", (© Д. Свифт), надеюсь все помнят причину войны между ними. Для того, чтобы менять имеющееся (и сложившееся не на пустом месте!) положение вещей - такая мотивация, коей оперирует Михаил мягко говоря - недостаточна, так зачем же устраивать бурю в стакане воды? Ради чего ломать копья - чтобы изменить название фичи?..
Сообщить модератору   Записан

Мы тоже не всего читали Шнитке!..
© В. Вишневский
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #73 : 28 февраля 2007, 08:37:16 »

И хотелось бы, чтоб некоторые прямо признали это, а не "пытались сохранить мину при плохой игре". Давайте сделаем эту опцию такой, какой она должна быть, а не рассуждать: "да, действительно, выяснили, что она работает не так как надо, "косяк", давайте теперь срочно подумаем, как это можно использовать, не исправляя". А ведь так и развивалась вся динамика топика.

С чего ты взял, что эти "некоторые" с тобой согласны в том, что опция работает неправильно?!
Большинство "некоторых" уже четвертую страницу пытаются тебя убедить, что ты заблуждаешься!
Уже 5 "некоторых" из разряда опытных пользователей высказались против твоего предложения и привели свои аргументы! Но ты упрямо настаиваешь на своем!
У тебя не складывается ощущение, что "Некоторые" = ВСЕ, кроме тебя?!
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #74 : 28 февраля 2007, 08:45:49 »

Ситуация выглядит так:
  • У программы было поведение, назовем его А.
  • Кому-то из пользователей понадобилось поведение В.
  • Во время обсуждение пришли к выводу что поведение и алгоритм В стоит реализовать, при этом, многим нужно также поведение А.
  • Решили сделать опцию, придумали как ее назвать (пусть и некорректно в глобальном смысле, но понятно в контексте обсуждения.)
  • Опция переключает поведение А и В
  • Появляется Михаил, неразобравшись в работе опции, в исторически сложившейся функциональности и говорит: " Давайте сделаем эту опцию такой, какой она должна быть, а не рассуждать: "да, действительно, выяснили, что она работает не так как надо, "косяк", давайте теперь срочно подумаем, как это можно использовать, не исправляя". "
  • То есть предлагает сделать "правильно, задуманное" поведение C и D и переключать между ними
  • Аргументы игнорируются, суть предлагаемых C и D в конечном итоге может привестись к уже реализованному (как было в случае с новой схемой работы)
  • Так повторяется из топика в топик
Вопрос: кому и зачем это нужно? Предлагаю перед предложением чего-либо, почитать версии для печати всех топиков на ру-борде, по-крайней мере будет представление о программе, как о процессе развития от простой кешировалки, до комбайна как сейчас.
DenZzz
Развернул твою точку зрения ))
Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #75 : 28 февраля 2007, 09:38:59 »

Но разве мое решение оставляет лазейки для претензий по поводу неправильной работы опции? Как написано так и будет работать. А общая фраза Игонорировать No-cache слишком расплывчата. Отсюда и возник этот спор.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #76 : 28 февраля 2007, 12:19:40 »

Сергей
Цитировать
Я все правильно понял. Не перевирай.
Я адресовал этот пост сереге_ang с его рационализаторством о десятистрочном названии опции. Надеюсь, вы не один и тот же физический Сергей?
Я думаю, нет.
Цитировать
Но разве мое решение оставляет лазейки для претензий по поводу неправильной работы опции? Как написано так и будет работать. А общая фраза Игонорировать No-cache слишком расплывчата. Отсюда и возник этот спор.
Нет, твое решение как раз кажется мне единственным здравым в отличие от многих других постов. Ты единственный, кто поняв мысль, не сделал вид, что так и надо, а высказался как исправить ситуацию. Остальные, думаю, давно поняли тоже, но ломают комедию (я не про то, какой эта опция задумывалась, а про то, что она не должна существовать в своем нынешнем виде: содержании и/или названии) Непонимаю
К этому решению у меня просто как минимум одна добавка: нужно сделать также опцию "Игнорировать no-cache" (в том или ином виде) в том смысле, какой в ней заложен названием и стандартом. В противном случае желающие иметь автономный режим не смогут пользоваться возможностью неигнорировать no-cache, чем будут поставлены в худшее положение по сравнению с теми, кто не желает пользоваться автономкой.
И еще. Фраза "Игнорировать/не игнорировать no-cache" не расплывчата, а максимально конкретна, т.к. допускает по rfc2616 только одно толкование. И если это было задумано как такая "фича", как описано (экономия диска и пр.), то это конкретное понятие использовано неверно.

серега_ang
Цитировать
ВСЕ опции рождались в муках пользователей на руборде. То есть сначала опции небыло, попросили сделать такое поведение как сейчас, сделали, назвали как показалось правильным.
И не надо говорить...
Вопрос: кому и зачем это нужно? Предлагаю перед предложением чего-либо, почитать версии для печати всех топиков на ру-борде, по-крайней мере будет представление о программе, как о процессе развития от простой кешировалки, до комбайна как сейчас.
Только не надо говорить сразу обо всем и от имени всего прогрессивного человечества. Непонимаю Покажи конкретно на Ру-борде момент зарождения этой опции или не бросай слова в воздух.
« Последнее редактирование: 28 февраля 2007, 12:52:37 от Михаил » Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #77 : 28 февраля 2007, 13:08:19 »

Сейчас при отключенной опции "Игнорировать no-cache" НС:
- запрещает запись файла в кэш, чего делать не должен;
НС не запрещает запись в кэш - он просто не пишет в кэш. А почему, он должен писать? Какие требования этим нарушаются?

Цитировать
- когда файл есть в кэше и подпадает под правила списка "Т" или "Н", НС молча отдает его из кэша, а должен предварительно проверить его валидность на сервере: если не валиден - не отдавать из кэша, а тянуть из сети.
Соответственно этому предлагаю изменить работу НС при отключенной опции.
НС не знает, что для файлаX из кэша надо проверить валидность, а для файлаY не надо. Для HC файлы в кэше "равноправны". Ко _всем_ файлам будет или применена или нет опция "Добавить If-Modified-Sience при наличии файла в кэше".
Поэтому нынешнее положение вполне соответствует рекомендациям RFC2616 и здравому смыслу: если опция игнорирования N-C выключена - файл в кэш не пишется, дабы он не попал под правила списков Н/Т что директива N-C прямо запрещает.
На сегодняшний день HC "не помнит" какой из файлов поступил с какой директивой, а без этой "памяти" невозможно и файл в кэш записать, и именно для него потом валидность проверять. И в начале топика ты и предлагал записывать это в будущий индекс, да что-то ушел от этого в сторону (увели? Подмигивающий) обличения существующей опции в неправильной работе. Да не неправильная она, а наоборот единственно возможная на сегодняшний день!

Покажи конкретно на Ру-борде момент зарождения этой опции или не бросай слова в воздух.
Ну покажет тебе серега_ang или кто-либо другой эту "отправную точку" - что это изменит? Зачем время терять?

no-cache ... не дает кэшу читать устаревшие данные. Вроде в цитате из rfc2616 все четко написано: что НЕ ДОЛЖЕН делать кэш при виде опции no-cache (не читать с диска невалидный ответ) и для чего это делается.
Любопытствую твоей трактовкой директивы Cache-Control: must-revalidate и как HC без нее живет.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #78 : 28 февраля 2007, 16:07:27 »

- когда файл есть в кэше и подпадает под правила списка "Т" или "Н", НС молча отдает его из кэша, а должен предварительно проверить его валидность на сервере: если не валиден - не отдавать из кэша, а тянуть из сети.
Соответственно этому предлагаю изменить работу НС при отключенной опции.
Вот сижу и думаю: а есть ли на свете хоть один прокси-сервер, который работает в соответствии с твоими желаниями - т.е. такой, который бы не только записывал в кэш/читал из кэша, но еще бы и запоминал какой ответ с какой директивой пришел и использовал эту память при формировании ответов на дальнейшие запросы? Ты о таких часом не слыхал? Есть пример для подражания?
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #79 : 28 февраля 2007, 17:01:32 »

Не буду вступать в дискуссию о том, правильно работает эта опция или нет. Думаю у обеих точек зрения могут быть сторонники и противники. Свою точку зрения я выразил в том как работает программа, а работает она так:
Получен ответ сервера. Если опция ВКЛЮЧЕНА или в ответе нет подстроки 'no-cache', то программа переходит к обработке списка Запись в кэш. Если опция ВКЛЮЧЕНА, то наличие 'no-cache' в ответе не проверяется (игнорируется).
Поскольку в настоящее время директивы 'no-cache' не сохраняются, единственная возможность предотвратить чтение из кэша файлов с 'динамическим содержанием' для соблюдения стандартов - их туда просто не писать.
« Последнее редактирование: 28 февраля 2007, 17:56:15 от mai62 » Сообщить модератору   Записан
Сергей
Beta tester
*****

Репутация: +9/-2
Offline Offline

Сообщений: 621



« Ответ #80 : 28 февраля 2007, 17:35:11 »

Так и запишем Улыбка
Не писать ....
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #81 : 28 февраля 2007, 17:39:58 »

Если опция ВКЛЮЧЕНА или в ответе нет подстроки 'no-cache', то программа переходит к обработке списка Запись в кэш. Если опция ВЫКЛЮЧЕНА, то наличие 'no-cache' в ответе на проверяется (игнорируется).

Кажется, буква "Ы" в этом предложении лишняя!? Подмигивающий
Сообщить модератору   Записан
DenZzz
Модератор
*****

Репутация: +179/-11
Offline Offline

Сообщений: 5589



« Ответ #82 : 28 февраля 2007, 17:53:03 »

"Ы" на месте. Просто не полная фраза. Должно быть: Если опция ВЫКЛЮЧЕНА, то наличие 'no-cache' в ответе не проверяется и обработка списка "З" (а следовательно и запись) не производится.

Вообще-то, при вЫключенной опции как раз и проверяются заголовки на предмет наличия 'no-cache' для принятия решения о кэшировании!

Или был смысл такой: "Если опция ВЫКЛЮЧЕНА, то наличие 'no-cache' в закэшированных ранее ответах не проверяется!"
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #83 : 28 февраля 2007, 17:53:29 »

"Ы" на месте. Должно быть: Если опция ВЫКЛЮЧЕНА, и в ответе присутствует 'no-cache' то обработка списка "З" (а следовательно и запись) не производится.

DenZzz
Я тоже второпях сначала неправильно написал. Улыбка

Цитировать
наличие 'no-cache' в закэшированных ранее ответах не проверяется!
А это и не может проверяться. Для закэшированных ранее ответов неизвестно было ли no-cache, не было ли.
Сообщить модератору   Записан
mai62
Автор HC
*****

Репутация: +226/-4
Offline Offline

Сообщений: 6383


« Ответ #84 : 28 февраля 2007, 17:54:12 »

DenZzz
Цитировать
Кажется, буква "Ы" в этом предложении лишняя!?
Ты прав, спасибо за бдительность. Хотел внести ясность и внес, называется  :Улыбка
То что я хотел выразить, следует читать так:
Если опция ВКЛЮЧЕНА или в ответе нет подстроки 'no-cache', то программа переходит к обработке списка Запись в кэш. Если опция ВКЛЮЧЕНА, то наличие 'no-cache' в ответе не проверяется (игнорируется).
Щас исправлю то сообщение, чтобы не вводить в заблуждение
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #85 : 28 февраля 2007, 22:19:11 »

Rick
Цитировать
НС не запрещает запись в кэш - он просто не пишет в кэш. А почему, он должен писать? Какие требования этим нарушаются?
Не запрещать запись в кэш вовсе не означает обязанности писать туда. Я и не говорил, что он должен писать безусловно. Я говорил о том, что он должен писать на общих основаниях, т.е. в соответствии с политикой, определяемой списками "Б" и "З".
Цитировать
И в начале топика ты и предлагал записывать это в будущий индекс, да что-то ушел от этого в сторону (увели? ) обличения существующей опции в неправильной работе
Об этом и велась речь вначале - запоминать no-cache. Однако после этого поста начала проталкиваться идея, что на обновление файла отключение этой опции никоим образом влиять не должно, а должно влиять на запись в кэш. Но это "должно" - не потому что у нас просто нет выбора (т.к. сейчас мы не можем сохранять no-cache), а потому что так и задумано, так правильно независимо ни от чего. Было также акцентировано, что при отключенной галке не нужно проверять обновление файла на сервере, а сначала надо свериться со списками "Н" и "Т". Все эти обстоятельства и вызвали "обличения в неправильной работе", если эта работа видится именно такой.
Цитировать
Да не неправильная она, а наоборот единственно возможная на сегодняшний день!
Так давайте ее менять с введением индекса! Предлагаю это еще раз. Именно это и не находит понимания - у "партнеров" (с Путин В.В.) идет ведь упор на то, что менять ничего не нужно - эта опция самодостаточна и очень "фична". Подмигивающий
Цитировать
Ну покажет тебе серега_ang или кто-либо другой эту "отправную точку" - что это изменит? Зачем время терять?
Понимаешь, я два раза подсказал человеку, что он предварительно не читает весь топик, когда публикует в нем сообщение. После этого он мне очень патетично, "разворачивая" по своему разумению чужие точки зрения, указал на нечитание ру-борда, где введение этой опции было якобы "выстрадано" форумянами. Хотелось просто дать ему понять, что этого не было. Ведь, сопереживая за "страдания" всего сообщества, он не ведает, что опция была создана автором самостоятельно (или по крайне мере без публичного обсуждения на ру-борде) и никем доселе на ру-борде не обсуждалась в плане ее необходимости/правильности.
В общем, ты прав. Зачем время терять? Лучше сразу:

серега_ang
-1

Rick
Цитировать
Любопытствую твоей трактовкой директивы Cache-Control: must-revalidate и как HC без нее живет.
1. Смысл директивы следующий. Файл есть в кэше, клиент его запрашивает. Если файл устарел с точки зрения сервера, а именно уже прошло посланное ранее сервером вместе с этим файлом Expires или max-age, то файл перед выдачей из кэша надобно проверить у сервера на неизменность. Разница с no-cache такая: no-cache - файл безусловно валидируется, must-revalidate - валидируется только если он устарел с точки зрения сервера.
2. Как НС без нее живет? В принципе нормально, но до первого серьезного преткновения пользователя. Это относится не только к этой директиве, но и ко многим другим из блока Cache-Control. Во всех хитросплетениях этих директив разобраться, на мой взгляд, достаточно сложно. На все это накладывается еще многопользовательский вариант, общие и частные кэши. По всем этим направлениям одному автору работать - я считаю означает закопаться навеки. Поэтому считаю, что с помощью форума надо потихоньку, по зернышку, по мере собственного самочувствия подтягивать НС к правильной обработке этих ситуаций. Самое сложное здесь - разобраться. Это и может сделать форум. И выдать автору четкий алгоритм, как сделать (и надо ли это вообще), чтоб начал правильно обрабатываться, например, какой-нибудь proxy-revalidate, и в каких случаях надо (и надо ли) давать пользователю возможность обходить его. При необходимости можно по каждой такой директиве потихоньку создавать отдельный топик и "добивать" ее применимость к НС. Но, честно говоря, муторновато этим заниматься, хотя, на мой взгляд, все равно нужно. Энтузиазма не хватает. Подмигивающий
Цитировать
Вот сижу и думаю: а есть ли на свете хоть один прокси-сервер, который работает в соответствии с твоими желаниями - т.е. такой, который бы не только записывал в кэш/читал из кэша, но еще бы и запоминал какой ответ с какой директивой пришел и использовал эту память при формировании ответов на дальнейшие запросы? Ты о таких часом не слыхал? Есть пример для подражания?
Точно разбираться не хочется, но мне кажется, что запоминают все это сквид и ISA сервер. А вот равняться, наверное, на них прям так уж сильно не надо. Но в некоторых моментах стоит и позаимствовать идеи.

серега_ang
Цитировать
Там где выложены логи смоделированы странные ситуации, особенно вторая - пользователь наложил в кеш файлов с включенной опцией, потом отключил ее, при этом у него в Н правило '.' ... Это нереально, либо пользователь просто тыкает все настройки абсолютно непонимая их смысла.
Согласен, пример не из распространенных - просто не задавался такой целью - делать его супер жизненным. Но имеет ведь право такая логика - пользователь решил включить "Игнорировать no-cache", чтоб начать экономить больше. В результате ряд критичных для него сайтов начал работать не так, как раньше. Поработав так некоторое время, он плюнул, и не став выяснять подробности для каждого из таких сайтов, просто отключил галку взад - "пусть все будет по прежнему". Вот и ситуация. Правило "." в "Н" и весь пример ради того, чтоб логом доказать, что НС ведет себя именно так, как я говорил. Если претит включение/отключение галки одним и тем же пользователем, можешь задуматься над примером, когда пользователя два на общем кэше. У одного галка включена, у другого - выключена.

DenZzz
Цитировать
У тебя не складывается ощущение, что "Некоторые" = ВСЕ, кроме тебя?!
Не складывается.
« Последнее редактирование: 28 февраля 2007, 22:34:41 от Михаил » Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #86 : 01 марта 2007, 00:12:46 »

Согласен, на ру-борде не обсуждали, но там появилась сразу версия 0.92 уже с этой опцией. Где обсуждались/обсуждались ли вообще более ранние версии я не знаю. Ну и фиг с ним. Обсудим сейчас. Только без меня - сил уже не осталось " очень патетично, "разворачивая" по своему разумению чужие точки зрения" вести здесь дискуссию.
Кстати - пролистал все пять печатных топиков на руборде, на предмет проблем с это опцией - практически ничего нет, если у кого-то некешировалось, ему говорили включить опцию и все Улыбка. Так что по-моему проблема надуманная
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #87 : 01 марта 2007, 17:36:08 »

Точно разбираться не хочется, но мне кажется, что запоминают все это сквид и ISA сервер. А вот равняться, наверное, на них прям так уж сильно не надо. Но в некоторых моментах стоит и позаимствовать идеи.
Честно говоря, у меня велико убеждение, что рекомендации RFC2616 в отношении директивы no-cache всеми разработчиками прокси трактуется как "не кэшировать". Точнее не важно как трактуется, но реализуется именно так. Убеждение ни чем не подтверждено - просто мне так кажется.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #88 : 01 марта 2007, 21:03:55 »

Михаил

Посмотрел про Squid:

To determine whether a given object may be cached, Squid takes many things into consideration. The current algorithm (for Squid-2) goes something like this:
  • Responses with Cache-Control: No-Cache are NOT cachable.
  • Responses with Cache-Control: No-Store are NOT cachable.

Посмотрел про ISA Server 2006:

Not all Internet content can be cached. ISA Server will not cache Web pages with specific information in the response or request headers, as follows:
Header TypeDetails
Cache-Control: no-cache response headerThe HTTP 1.1 Cache-control header prevents all catching.
Pragma: no-cache response headerHTTP 1.0 servers cannot use the Cache-Control header. The Pragma: no-cache header ensures that if the client communicates with the server over a secure HTTPS connection, and the server returns a Pragma-no-cache header with the response, the response is not cached.
Cache-Control: no-store request headerIndicates that the cache must not store any part of either the request or any response to it.

А несохранять в кэш без затрагивания вопроса о чтении оттуда должна директива no-store.

Цитировать
обрати внимание на слова в своем же переводе "Это позволяет серверу предотвращать кэширование...". No-Cache указывает, что не следует записывать в кэш!

Нет. Кэширование - это шире записи в кэш. Оно включает как запись, так и последующее чтение оттуда. Здесь речь идет о том, что ввиду того, что невалидного чтения не будет не будет и кэширования.
Похоже ты ошибаешься.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #89 : 01 марта 2007, 21:16:12 »

Rick - респект за обоснование!
Сообщить модератору   Записан
Oneri
Новичок
*

Репутация: +2/-0
Offline Offline

Сообщений: 34


« Ответ #90 : 01 марта 2007, 21:37:43 »

squid обычно работает в online режиме и ему нет смысла сохранять данные с no-cache
для автономного режима мы должны сохранить эти страницы на диске.

с no-store все сложнее, если прокси используется несколькими юзерами то их сохранять нельзя
если одним то можно

предлагаю вывести игнорировать no-store в отдельный пункт настроек и пусть каждый решает сам нужно ему сохранять эти страницы или нет.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

Репутация: +9/-4
Offline Offline

Сообщений: 355


« Ответ #91 : 01 марта 2007, 21:42:22 »

предлагаю вывести игнорировать no-store в отдельный пункт настроек и пусть каждый решает сам нужно ему сохранять эти страницы или нет.
У меня нет соответствующей статистики, но можешь посмотреть на этом или любом другом форуме, или любом сайте живущем за счет рекламы: там есть и no-cache и no-store и must-revalidate и expires 0 и т.д....
В связи с этим может быть назвать опцию "Игнорировать директивы препятствующие кешированию"?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

Репутация: +337/-14
Offline Offline

Сообщений: 5513



« Ответ #92 : 01 марта 2007, 23:13:33 »

Rick
Цитировать
Похоже ты ошибаешься.
В чем именно? Не понял.
Сообщить модератору   Записан
Дем
Постоялец
***

Репутация: +6/-3
Offline Offline

Сообщений: 167



« Ответ #93 : 03 марта 2007, 13:43:26 »

1) ИМХО, будет логичней перенести это опцию в заголовок списка "запись в кеш" (как и предыдущие две "не сохранять файлы более/менее") - так как она относится именно к записи в кеш.
2) при введении индекса - хранить в нём флаг о наличии в заголовке no-cache и по выбору пользователя обновлять/не обновлять (последнее - для автономного режима, например)
Сообщить модератору   Записан
Страниц: 1 2 3 ... 5 [Все]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: