+  HandyCache форум
|-+  Главная категория» Общие вопросы» Ответ "304 Not Modified (HC)"
Имя пользователя:
Пароль:
Страниц: 1 [2] 3 4 5  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Ответ "304 Not Modified (HC)"  (Прочитано 58048 раз)
0 Пользователей и 1 Гость смотрят эту тему.
cepera_ang
Beta tester
*****

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

Сообщений: 355


« Ответ #20 : 04 марта 2007, 18:27:50 »

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

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

Сообщений: 5513



« Ответ #21 : 04 марта 2007, 19:00:46 »

серега_ang
А я не хочу постоянно чистить кэш браузера (к тому же все равно не имея гарантии, что в промежутке между чистками мне не будут давать устаревшие данные), выходить/заходить в браузер, включать/отключать каждый раз списки/правила. Предпочитаю, чтобы актуальная информация (как я вижу ее актуальной, задав правила в списке "Н") поступала всегда и без  подобных усилий с моей стороны (при этом указанные усилия все равно не дают мне 100% гарантии, а лишь неопределенным образом повышают ее). Есть подозрение, что этого же хочет большинство пользователей.
А часть пользователей не только не захочет, но и не сможет чистить кэш клиента. Либо потому что не умеет, либо потому что неоправдано, либо потому что нет доступа к этой операции.
И вообще мое мнение, когда дело касается вопроса правильности работы программы, любая вероятность кроме 100% не приемлема.
« Последнее редактирование: 04 марта 2007, 19:05:37 от Михаил » Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #22 : 05 марта 2007, 13:21:31 »

А я не хочу постоянно чистить кэш браузера

Кэш браузера чистится сам. Новые данные затирают старые. Если, конечно, не делать его слишком большим.

Цитировать
И вообще мое мнение, когда дело касается вопроса правильности работы программы, любая вероятность кроме 100% не приемлема.
Смотря что подразумевать под правильностью. Слепо следовать рекомендациям стандарта или делать то что нам нужно.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #23 : 05 марта 2007, 13:49:51 »

Сергей
Цитировать
Смотря что подразумевать под правильностью. Слепо следовать рекомендациям стандарта или делать то что нам нужно.
Я понимаю как раз последнее, о чем уже упоминал выше. И прежде всего в этом понимании мы получаем неправильность. И только во-вторых она совпадает с неправильностью относительно стандарта. Покажи мне, плиз, где я призывал "слепо следовать рекомендациям стандарта"?
Ты читал выше пример про пользователей А и Б? Пользователь А имеет шанс никогда не обновить свой новостной сайт. Это входит в понятие "делать то что нам нужно"?
Цитировать
Кэш браузера чистится сам. Новые данные затирают старые. Если, конечно, не делать его слишком большим.
Про кэш браузера тоже вроде писал постом выше. Ну нет у пользователя ни желания, ни возможности, ни необходимости чистить его. Что тогда? Замени к примеру понятие браузера понятием еще одного кэш-прокси (частный кэш) - весь его постоянно чистить? Не будет у пользователя и желания получать устаревшую информацию между чистками.
И еще. Почему мы вообще должны каким-либо образом зависеть от организации собственного кэша клиента? Мне такая зависимость не нравится.
При всем при этом алгоритм оптимизации, описанный DenZzz, продолжает прекрасно работать за исключением лишь того случая, когда URL попадает под правило списка "Н" с критерием свежести, файл есть в кэше и IMS < Даты изменения файла.
« Последнее редактирование: 05 марта 2007, 14:15:18 от Михаил » Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #24 : 05 марта 2007, 14:20:37 »

Цитировать
Ты читал выше пример про пользователей А и Б?
Не корректный пример. Ты разрешаешь писать в кэш сразу нескольким клиентам на свой страх и риск. Никто не гарантирует корректной работы в таком случае.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #25 : 05 марта 2007, 14:35:14 »

Не корректный пример. Ты разрешаешь писать в кэш сразу нескольким клиентам на свой страх и риск.
Разве я указывал на обязательность одновременной записи в кэш разными пользователями? Пусть А только читает, Б - и пишет, и читает. В чем некорректность?
ОФФТОПИК: На мой взгляд, так возможно лучше было б, если б писать могли все. Это потребует дополнительных усилий по арбитражу, но имхо не является принципиально невозможным.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

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

Сообщений: 355


« Ответ #26 : 05 марта 2007, 16:30:11 »

серега_ang
А я не хочу постоянно чистить кэш браузера (к тому же все равно не имея гарантии, что в промежутке между чистками мне не будут давать устаревшие данные), выходить/заходить в браузер, включать/отключать каждый раз списки/правила. Предпочитаю, чтобы актуальная информация (как я вижу ее актуальной, задав правила в списке "Н") поступала всегда и без  подобных усилий с моей стороны
Достаточно 1 раз при установке НС почистить кеш браузера, и так как в дальнейшем вся информация будет поступать из НС - значит актуальность данных полностью контролируется правилами в нем. Это первое. Второе - нужна 100% гарантия правильной работы: отключи вообще НС и все возможные промежуточные прокси-серверы. А желательно подключиться прямо к серверу.
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #27 : 05 марта 2007, 18:00:23 »

серега_ang
Цитировать
так как в дальнейшем вся информация будет поступать из НС - значит актуальность данных полностью контролируется правилами в нем.
В том то и дело, что не полностью. Она может измениться в кэше НС при работе других пользователей с их собственными правилами (см. пример), при копировании ее туда вручную, может попасть к клиенту (который кстати не обязательно является браузером) при отключении/переключении прокси и т.п.
Цитировать
Второе - нужна 100% гарантия правильной работы: отключи вообще НС и все возможные
промежуточные прокси-серверы. А желательно подключиться прямо к серверу.
Под гарантией правильной работы - я имею ввиду не получение гарантированно свежей информации с сервера, а получение информации, актуальной настолько насколько это допускают правила, заданные в НС. Если же информация не обновляется невзирая на заданные в НС правила (т.е. критерий свежести истек, а инфа не обновлена при попытке доступа), то это уже меня не может устраивать.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

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

Сообщений: 355


« Ответ #28 : 05 марта 2007, 19:48:24 »

Я примерно понял суть вопроса, и несмотря на его притянутось за уши: при вероятности получения абсолютно старых данных равной 99% из кеша, беспокоиться о 1% случаев когда даже старая информация из кеша, будет выдана из еще более старого кеша. И эта ситуация может возникнуть только в случае срабатывания Н с критерием свежести (в остальных случаях нам плевать какой файл будет выдан, иначе мы бы такие правила не задавали) Тем не менее можно избежать этого, если кроме критерия свежести проверять еще время IMS из запроса браузера. То есть изменить алгоритм примерно так: Когда получен запрос с "If-Modified-Since" и проверяется правило с заполненным критерием свежести в списке "Не обновлять", то:
- Если файл есть в кэше HC и его дата в кэше не просрочена по критерию свежести, то проверям не просрочен ли файл по IMS, если просрочен - выдаем 200 OK и файл обновится в кеше браузера, иначе правило из списка "Не обновлять" срабатывает и HC формирует ответ "304 Not Modified", т.е. велит браузеру брать файл из его кэша.

Сообщить модератору   Записан
taimael
Новичок
*

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

Сообщений: 8


« Ответ #29 : 26 мая 2007, 15:50:40 »

нужно обновить в браузере файл из кеша или из инета
а НС выдает такую штуку "304 Not Modified (HC)"
тыкать списки оказывается абсолютно бесполезно, как и перегружать HC
проблема решается только перезагрузкой браузера (опера)
кеш в опере отключен
как вообще запретить HC выдавать браузеру ответ "304 Not Modified (HC)" ?
пусть согласно правилам все из кеша или с инета берет
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

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

Сообщений: 355


« Ответ #30 : 26 мая 2007, 18:14:17 »

Какие правила срабатывают? Если говорит 304 Not Modified (HC) значит сработало правило Не обновлять, ну сколько можно уже объяснять...
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #31 : 26 мая 2007, 21:15:12 »

тыкать списки оказывается абсолютно бесполезно, как и перегружать HC

Видимо, не те списки "тыкал"... Надо было отключать "Не обновлять" и "Только из кэша"! Почитай вот здесь...

Цитировать
кеш в опере отключен

И RAM-кэш тоже? Тогда где ж Опера берет файлы после того, как HC отвечает ей: "304 Not Modified (HC)"?
« Последнее редактирование: 26 мая 2007, 21:21:30 от DenZzz » Сообщить модератору   Записан
taimael
Новичок
*

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

Сообщений: 8


« Ответ #32 : 27 мая 2007, 10:51:12 »

Тогда где ж Опера берет файлы после того, как HC отвечает ей: "304 Not Modified (HC)"?

Опера с оперативки может...
а в ИЕ смотрел, там полностью кеш не отключается, 1 mb все равно остается - и там эти старые файлы лежат

просто периодически бесит глюк
когда руками затаскиваю в кеш новый скрипт или несжатую картинку мимо тунеля
и потом хрен как из кеша их достанешь
HC отвечает браузеру "304 Not Modified (HC)" и браузер продолжает юзать старый скрипт или картинку

а на списки не наезжайте
повторяю:

тыкаешь в браузере обновить страницу - HC отвечает "304 Not Modified (HC)"
закрываешь браузер (Оперу) и открываешь снова - HC берет файлы из кеша
ну и при чем тут списки?
и при чем тут кеш Оперы?

в ИЕ с его 1 мб кеша перезагрузка браузера естественно не помогает
понимаю что всяка в ИЕ можно и полностью как-то кеш отключить
но это мне мало интересно, я оперу юзаю


сформулирую еще раз по другому:
я руками положил в кеш новую версию файла (скрипт или картинку)
или же использовал пункт меню в мониторе НС "загрузить в кеш"
как теперь заставить отдать НС этот файл браузеру?
у меня без перезагрузки браузера (оперы) это почему-то не получается

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

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

Сообщений: 5513



« Ответ #33 : 27 мая 2007, 13:21:50 »

taimael
DenZzz
Сам на такое регулярно натыкаюсь, и мне это очень не нравится. В одних случаях чтоб получить актуальный файл, надо браузер перегружать/вычищать его кэш, в других RAM-кэш НС вручную чистить, в третьих - и то, и другое делать вместе. Имхо, это не есть хорошо - в погоне за быстродействием теряются актуальность данных и удобство работы. Не всех этот выбор устраивает.
На мой взгляд, неплохо бы нынешнее поведение "304 Not Modified (НС)" сделать опциональным, предусмотрев в настройках соответствующую галку.
« Последнее редактирование: 27 мая 2007, 13:29:06 от Михаил » Сообщить модератору   Записан
cepera_ang
Beta tester
*****

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

Сообщений: 355


« Ответ #34 : 27 мая 2007, 13:58:09 »

Мдя, головой стену не прошибешь... Еще раз: какие списки срабатывают при ответе 304 Not modified? Критерии свежести стоят? Может быть просто сделать горячую клавишу на отключение списка не обновлять? Например CTRL и нажимать CTRL когда хотите обновить файл? Почему-то у меня почти не возникает необходимость "подкладывать в кеш" файлы. Наверное потому что я в инете работаю/отдыхаю, а не с проксями вожусь.
В любом браузере можно включить очистку кеша при выходе (это к слову о кеше 1мб в IE). А в опере можно поставить пераметры "проверять кешированные файлы" или как-то так - поставить всегда и будет каждый раз пытаться загрузить из кеша. + отключить кеш в памяти в опере и на диске. Хотя это полное извращение.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #35 : 27 мая 2007, 14:19:37 »

тыкаешь в браузере обновить страницу - HC отвечает "304 Not Modified (HC)"
закрываешь браузер (Оперу) и открываешь снова - HC берет файлы из кеша
ну и при чем тут списки?
и при чем тут кеш Оперы?

Еще раз повторяю, HC отвечает "304 Not Modified (HC)" ТОЛЬКО при выполнении 2 условий:
1. Файл есть в кэше браузера и он проверяет его актуальность запросом с "If-Modified-Since";
2. В HC срабатывают правила из списка "Не обновлять" или "Только из кэша".

Если ты не хочешь, чтобы HC ответил браузеру "304 Not Modified (HC)", то просто нарушь одно из этих условий - очисть/отключи кэш браузера ИЛИ горячими кнопками отключи списки "Н" и "Т"!

Цитировать
я руками положил в кеш новую версию файла (скрипт или картинку)
или же использовал пункт меню в мониторе НС "загрузить в кеш"
как теперь заставить отдать НС этот файл браузеру?
у меня без перезагрузки браузера (оперы) это почему-то не получается

Закрой в Опере страницу, на которой хочешь что-то обновить, и в "Сервис / Настройки / Дополнительно / История / Дисковый кэш" - нажми кнопку "Очистить сейчас"! После этого HC выдаст браузеру файл из своего кэша, а не "304"!


На мой взгляд, неплохо бы нынешнее поведение "304 Not Modified (НС)" сделать опциональным, предусмотрев в настройках соответствующую галку.

Я не против, хотя и сомневаюсь в полезности такой опциональности! За полгода существования этой фичи нарекания звучали только на неучет "304" в проценте экономии, что также имеет спорную необходимость!

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

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

Сообщений: 5513



« Ответ #36 : 27 мая 2007, 14:43:28 »

За полгода существования этой фичи нарекания звучали только на неучет "304" в проценте экономии, что также имеет спорную необходимость!
В этой теме уже затрагивались проблемы.
Цитировать
А про нарекания некоторых горе-экспериментаторов, неумеющих обновлять файлы в кэше браузера, я вообще молчу...  Плачущий
Если даже уметь вручную обновлять, все равно это раздражает и этого делать не хочется. Неплохо б, на мой взгляд, чтоб вопросом безусловного обновления занималась, к примеру, существующая опция "Чтение из кэша", но она этого не умеет, т.к. при отключении не отбрасывает "If-Modified-Since" из заголовка запроса и не грузит файл из интернета, если он попадает в список "Только из кэша".
Сообщить модератору   Записан
taimael
Новичок
*

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

Сообщений: 8


« Ответ #37 : 27 мая 2007, 17:17:32 »

Закрой в Опере страницу, на которой хочешь что-то обновить, и в "Сервис / Настройки / Дополнительно / История / Дисковый кэш" - нажми кнопку "Очистить сейчас"! После этого HC выдаст браузеру файл из своего кэша, а не "304"!

ткнулся, чтоб попробовать
увидел, что у меня открыто 10 страниц использующих скрипт, который нужно заново из кеша взять
мне их сейчас все закрывать?
а потом заново открывать?
а адреса в блокнот записать перед этим?

мои настройки в опере:
кеш в памяти откл
дисковый кеш откл
стоит галка на очищать при выходе
проверять документы всегда
проверять рисунки всегда

и что где не правильно или затуплено?


cepera_ang, вероятно, ты не понял проблу, я ж объяснил, что списки не при чем
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #38 : 27 мая 2007, 17:58:51 »

В этой теме уже затрагивались проблемы.

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

Цитировать
Неплохо б, на мой взгляд, чтоб вопросом безусловного обновления занималась, к примеру, существующая опция "Чтение из кэша"

Возможно...



увидел, что у меня открыто 10 страниц использующих скрипт, который нужно заново из кеша взять
мне их сейчас все закрывать?
а потом заново открывать?

- Сначала в Опере сохранить сессию: "Файл / Сессии / Сохранить сессию";
- Потом закрыть все страницы, использующие скрипт;
- Потом очистить кэш браузера, как описано выше;
- Открыть в браузере сохраненную сессию.
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

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

Сообщений: 355


« Ответ #39 : 27 мая 2007, 19:15:20 »

ткнулся, чтоб попробовать
увидел, что у меня открыто 10 страниц использующих скрипт, который нужно заново из кеша взять
Кхм, а смысл? Если это страницы одного сайта, напиши его в исключения для списка "Не обновлять" или использую горячую клавишу, как уже посоветовали. Т.е. нужно обновить - нажимаешь горячую клавишу и кнопку обновить. Все.
Цитировать
а адреса в блокнот записать перед этим?
DenZzz уже посоветовал и такой вариант как сессии.
Цитировать
мои настройки в опере:
кеш в памяти откл
дисковый кеш откл
стоит галка на очищать при выходе
проверять документы всегда
проверять рисунки всегда
Не тормозит? Ведь если такая конфигурация, тогда приходится запрашивать файл например при переходе вперед-назад. И при каждом открытии странички грузятся все элементы оформления.
Цитировать
cepera_ang, вероятно, ты не понял проблу, я ж объяснил, что списки не при чем
Ну как не причем? Очень даже причем! Если при запросе попадается url подходящий под правила Не обновлять или Только из кеша - будет дан ответ 304. Вопрос: как обновлять? Ответ: отключить правила (вариант - написать исключения) для тех URL, которые нужно обновлять.
Или в кеше лежат вообще левые файлы? Собственные css'ки и скрипты? Если так, то нужно пользоваться списком переадресация либо преобразование урл.
И еще вопрос - чем нужно занимать, чтобы понадобились такие извращения? Веб-дизайном? Тогда может проще добавить в белый список эти сайты?

Сообщить модератору   Записан
Страниц: 1 [2] 3 4 5  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: