+  HandyCache форум
|-+  Главная категория» Новые предложения» Кэшировать не только ответы 200
Имя пользователя:
Пароль:
Страниц: 1 [2]  Все   Вниз
  Отправить эту тему    Печать  
Автор Тема: Кэшировать не только ответы 200  (Прочитано 24506 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Кирилл
Beta tester
*****

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

Сообщений: 124


« Ответ #20 : 27 апреля 2007, 12:25:15 »

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

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

Сообщений: 5513



« Ответ #21 : 27 апреля 2007, 22:53:33 »

Есть обратное предложение - НЕ кешировать ответ 302.
Ибо некоторые ресурсы (например, livejournal) балуются интересной формой отдачи страничек через два редиректа с возвратом к исходному... в результате при кешировании редиректа все зацикливается.
Мы можем эти некоторые ресурсы загнать в исключения/Белый список. Думаю, это редкое явление.
Сообщить модератору   Записан
Дем
Постоялец
***

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

Сообщений: 167



« Ответ #22 : 28 апреля 2007, 12:24:47 »

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

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

Сообщений: 124


« Ответ #23 : 28 апреля 2007, 13:08:50 »

2 Михаил
Мы можем эти некоторые ресурсы загнать в исключения/Белый список
В том-то и дело, что не можем! Ибо на ВТОРОЙ запрос (с тем же URL, но другими куками) отдается текстовая страничка, которую НАДО закешировать.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #24 : 28 апреля 2007, 13:29:49 »

В том-то и дело, что не можем! Ибо на ВТОРОЙ запрос (с тем же URL, но другими куками) отдается текстовая страничка, которую НАДО закешировать.

Циклится из-за списка "Не обновлять"? Какие правила срабатывают при зацикливании?
Сообщить модератору   Записан
Nike
Новичок
*

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

Сообщений: 19


« Ответ #25 : 03 мая 2007, 17:02:00 »

никакого правила не срабатывает. Отчётливо видно это, если например зайти во френдленту сразу, без захода в свой жж. Срабатывает правило записи в кеш на ответ 302 и дальше 6 раз крутится на одном месте вотзвращая из кеша ответ 302 found без индикации правила. После чего просто останавливается. Если попробовать ещё раз не закрывая броузера - всё получается. Броузер - опера 9.2
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #26 : 03 мая 2007, 20:40:08 »

Срабатывает правило записи в кеш на ответ 302 и дальше 6 раз крутится на одном месте вотзвращая из кеша ответ 302 found без индикации правила.

Приложи лог HC с отладочной информацией.
Сообщить модератору   Записан
Nike
Новичок
*

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

Сообщений: 19


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

Вот лог. Правило З.1 если что - .*

* log.zip (5.01 Кб - загружено 22 раз.)
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #28 : 04 мая 2007, 01:08:10 »

Вот лог. Правило З.1 если что - .*

М-да, есть цикл. При запросе http://users.livejournal.com/_n1ke_/friends HC вставляет в запрос заголовок "If-Modified-Since", в ответ на который сервер сайта велит брать файл из кэша!

Что можно сделать:
- Либо запретить кэшировать URL вида: users.livejournal.com/*/friends
- Либо в настройках HC "Общие / Управление загрузкой" отключить опцию "Добавить If-Modified-Since при наличии файла в кэше"



mai62

Видимо, не стоит HC в "If-Modified-Since" вставлять дату файла #m !
Он же не содержит тело самого файла, а только заголовки с переадресацией!
Сообщить модератору   Записан
Кирилл
Beta tester
*****

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

Сообщений: 124


« Ответ #29 : 04 мая 2007, 08:10:50 »

2 DenZZZ
Цитировать
- Либо запретить кэшировать URL вида: users.livejournal.com/*/friends
Текстовую страничку крайне желательно иметь в кеше. Хотя бы для автонома.
Цитировать
Либо в настройках HC "Общие / Управление загрузкой" отключить опцию "Добавить If-Modified-Since при наличии файла в кэше"
А это больше напоминает лечение перхоти гильотиной.
В следующей версии хорошо бы ответ 302 по умолчанию не кешировать вообще, ибо временное перемещение на то и временное, чтобы меняться сколь угодно часто.
Цитировать
Видимо, не стоит HC в "If-Modified-Since" вставлять дату файла #m !
И какой тогда будет эффект от кеширования редиректов?
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #30 : 04 мая 2007, 09:04:13 »

В следующей версии хорошо бы ответ 302 по умолчанию не кешировать вообще, ибо временное перемещение на то и временное, чтобы меняться сколь угодно часто.
Цитировать
Видимо, не стоит HC в "If-Modified-Since" вставлять дату файла #m !
И какой тогда будет эффект от кеширования редиректов?

Без кэширования редиректов HC не сможет найти в кэше в автономном режиме некоторые страницы (файлы), т.к. информации о их новом местоположении он не сохранил!

Кэширование редиректов в HC появилось не сразу, а потому что об этом многие просили на ру-борде!
Сообщить модератору   Записан
Кирилл
Beta tester
*****

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

Сообщений: 124


« Ответ #31 : 04 мая 2007, 09:24:25 »

2 DenZZZ
Цитировать
Без кэширования редиректов HC не сможет найти в кэше в автономном режиме некоторые страницы (файлы), т.к. информации о их новом местоположении он не сохранил!
Да, этого я не учел. В таком случае кешированные редиректы есть смысл использовать ТОЛЬКО в автономном режиме - а в обычном игнорировать их наличие в кеше. Разумеется, речь только о временных редиректах (302). Постоянные (301) кешировать можно и нужно.

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

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

Сообщений: 127


« Ответ #32 : 08 мая 2007, 18:05:44 »

DenZzz
еще можно всегда обновлять редиректы (весят они мало)
+ из кеша брать более свежий файл (если имеются одновременно редирект и данные)
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #33 : 20 мая 2007, 23:37:10 »

На ру-борде привели пример, когда сервер отдает запрашиваемую страницу с кодом ответа "404": http://www.3dnews.ru/video/gigabyte_8800gts_silent_pipe_3/
http://www.3dnews.ru/video
и другие по видеокартам...

Не понятно, баг ли это веб-мастера сайта или его хитрая задумка...
Но факт остается фактом - у "404" может быть как полезный, так и бесполезный контент!
"Полезный" (как на 3dnews.ru) надо кэшировать целиком, а для "бесполезного" (как на thg.ru) прерывать закачку и сохранять только сам факт отрицательного ответа.

Отличить их HC сам не сможет, поэтому хорошо бы список полезных/бесполезных "404" сайтов сделать настраиваемым с поддержкой RegExp (как в серверах-посредниках)...
« Последнее редактирование: 20 мая 2007, 23:43:33 от DenZzz » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #34 : 29 ноября 2007, 13:28:50 »

Зря забыли эту тему! Еще один пример:

Цитировать
29.11.07 14:09:45,080 # 88 <<< URL: http://savepic.ru/72049.jpg
HTTP/1.1 404 Not Found
Server: nginx/0.5.32
Date: Thu, 29 Nov 2007 10:12:59 GMT
Content-Type: image/jpeg
Connection: keep-alive
X-Powered-By: PHP/5.2.0
Content-Length: 47786

По статистике загрузок http://savepic.ru/ можно сделать вывод, что сервис довольно популярен! Но из-за того, что HC не умеет кэшировать 404 приходится грузить эти картинки вновь и вновь при каждом обновлении страницы!
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #35 : 29 ноября 2007, 14:48:11 »

Мое вИдение настройки и логики работы опции привел в связанной теме: "Разрыв соединения после получения заголовков ответов 301, 302, 403, 404 и т.п.".

Добавлю, что если URL попал в раздел "Кэшировать", то пишем в файл его тело. Если тела нет, то файл нулевой длины. Выдаем из кэша в обычном порядке, т.е. с ответом 200.

Хорошо бы в будущем сохранять заголовки таких ответов, а пока можно обойтись и без этого...

301 и 302 сохраняем как сейчас - только заголовки в файл #m.
« Последнее редактирование: 29 ноября 2007, 14:56:28 от DenZzz » Сообщить модератору   Записан
popkov
Beta tester
*****

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

Сообщений: 349


« Ответ #36 : 30 ноября 2007, 00:35:41 »

Хочу добавить, что на некоторых серверах только в виде ответов "430 Forbidden" и можно получить полезное содержимое! Пример - по этой ссылке можно просмотреть первую страницу статьи (и она находится Google'ом!), но приходит страница в виде "430 Forbidden".
Такие страницы не кэшируются. Однако в данном конкретном случае это следовало бы делать!
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #37 : 30 ноября 2007, 12:21:29 »

Хочу добавить, что на некоторых серверах только в виде ответов "430 Forbidden" и можно получить полезное содержимое!

Только не 430, а 403 - про него уже упоминалось в этой теме и смежной.

Спасибо за еще один живой пример! А то mai62 сомневается в актуальности этой темы...
Сообщить модератору   Записан
popkov
Beta tester
*****

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

Сообщений: 349


« Ответ #38 : 30 ноября 2007, 20:05:33 »

Спасибо за еще один живой пример! А то mai62 сомневается в актуальности этой темы...
Похоже, что следует исходить из принципа: всё, что не запрещено - разрешено! К сожалению, некторые сайты (как раз те, которые и следовало бы кэшировать, т.к. их внутренняя статистика посещений преследует цель отнюдь не облегчить жизнь человеку - а скорее при избыточном интересе к статье с данного IP перекрыть к ней доступ вообще!) готовы использовать этот принцип на все 100! Этот пример наглядно демонстрирует, насколько важно кэширование нестандантных ответов тапа 403, якобы Forbidden (а на самом деле вовсе не Forbidden, а реальная ценная информация!).
Сообщить модератору   Записан
Страниц: 1 [2]  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: