Кирилл
|
|
« Ответ #20 : 27 апреля 2007, 12:25:15 » |
|
Есть обратное предложение - НЕ кешировать ответ 302. Ибо некоторые ресурсы (например, livejournal) балуются интересной формой отдачи страничек через два редиректа с возвратом к исходному... в результате при кешировании редиректа все зацикливается.
|
|
|
|
|
Михаил
|
|
« Ответ #21 : 27 апреля 2007, 22:53:33 » |
|
Есть обратное предложение - НЕ кешировать ответ 302. Ибо некоторые ресурсы (например, livejournal) балуются интересной формой отдачи страничек через два редиректа с возвратом к исходному... в результате при кешировании редиректа все зацикливается.
Мы можем эти некоторые ресурсы загнать в исключения/Белый список. Думаю, это редкое явление.
|
|
|
|
|
Дем
Постоялец
Репутация: +6/-3
Offline
Сообщений: 167
|
|
« Ответ #22 : 28 апреля 2007, 12:24:47 » |
|
Имелось наверно ввиду, чтобы если по урлу приходит нормальный ответ - кешировать, а если по нему же 302 - то нет. Может быть решено прогонкой через регексп входящего заголовка...
|
|
|
|
|
Кирилл
|
|
« Ответ #23 : 28 апреля 2007, 13:08:50 » |
|
2 Михаил Мы можем эти некоторые ресурсы загнать в исключения/Белый список В том-то и дело, что не можем! Ибо на ВТОРОЙ запрос (с тем же URL, но другими куками) отдается текстовая страничка, которую НАДО закешировать.
|
|
|
|
|
DenZzz
|
|
« Ответ #24 : 28 апреля 2007, 13:29:49 » |
|
В том-то и дело, что не можем! Ибо на ВТОРОЙ запрос (с тем же URL, но другими куками) отдается текстовая страничка, которую НАДО закешировать.
Циклится из-за списка "Не обновлять"? Какие правила срабатывают при зацикливании?
|
|
|
|
|
Nike
Новичок
Репутация: +2/-0
Offline
Сообщений: 19
|
|
« Ответ #25 : 03 мая 2007, 17:02:00 » |
|
никакого правила не срабатывает. Отчётливо видно это, если например зайти во френдленту сразу, без захода в свой жж. Срабатывает правило записи в кеш на ответ 302 и дальше 6 раз крутится на одном месте вотзвращая из кеша ответ 302 found без индикации правила. После чего просто останавливается. Если попробовать ещё раз не закрывая броузера - всё получается. Броузер - опера 9.2
|
|
|
|
|
DenZzz
|
|
« Ответ #26 : 03 мая 2007, 20:40:08 » |
|
Срабатывает правило записи в кеш на ответ 302 и дальше 6 раз крутится на одном месте вотзвращая из кеша ответ 302 found без индикации правила.
Приложи лог HC с отладочной информацией.
|
|
|
|
|
Nike
Новичок
Репутация: +2/-0
Offline
Сообщений: 19
|
|
« Ответ #27 : 03 мая 2007, 22:13:21 » |
|
Вот лог. Правило З.1 если что - .*
|
|
|
|
|
DenZzz
|
|
« Ответ #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 ! Он же не содержит тело самого файла, а только заголовки с переадресацией!
|
|
|
|
|
Кирилл
|
|
« Ответ #29 : 04 мая 2007, 08:10:50 » |
|
2 DenZZZ - Либо запретить кэшировать URL вида: users.livejournal.com/*/friends Текстовую страничку крайне желательно иметь в кеше. Хотя бы для автонома. Либо в настройках HC "Общие / Управление загрузкой" отключить опцию "Добавить If-Modified-Since при наличии файла в кэше" А это больше напоминает лечение перхоти гильотиной. В следующей версии хорошо бы ответ 302 по умолчанию не кешировать вообще, ибо временное перемещение на то и временное, чтобы меняться сколь угодно часто. Видимо, не стоит HC в "If-Modified-Since" вставлять дату файла #m ! И какой тогда будет эффект от кеширования редиректов?
|
|
|
|
|
DenZzz
|
|
« Ответ #30 : 04 мая 2007, 09:04:13 » |
|
В следующей версии хорошо бы ответ 302 по умолчанию не кешировать вообще, ибо временное перемещение на то и временное, чтобы меняться сколь угодно часто. Видимо, не стоит HC в "If-Modified-Since" вставлять дату файла #m ! И какой тогда будет эффект от кеширования редиректов? Без кэширования редиректов HC не сможет найти в кэше в автономном режиме некоторые страницы (файлы), т.к. информации о их новом местоположении он не сохранил! Кэширование редиректов в HC появилось не сразу, а потому что об этом многие просили на ру-борде!
|
|
|
|
|
Кирилл
|
|
« Ответ #31 : 04 мая 2007, 09:24:25 » |
|
2 DenZZZБез кэширования редиректов HC не сможет найти в кэше в автономном режиме некоторые страницы (файлы), т.к. информации о их новом местоположении он не сохранил! Да, этого я не учел. В таком случае кешированные редиректы есть смысл использовать ТОЛЬКО в автономном режиме - а в обычном игнорировать их наличие в кеше. Разумеется, речь только о временных редиректах (302). Постоянные (301) кешировать можно и нужно.
|
|
|
|
|
v0lt
|
|
« Ответ #32 : 08 мая 2007, 18:05:44 » |
|
DenZzz еще можно всегда обновлять редиректы (весят они мало) + из кеша брать более свежий файл (если имеются одновременно редирект и данные)
|
|
|
|
|
DenZzz
|
|
« Ответ #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 (как в серверах-посредниках)...
|
|
|
|
|
DenZzz
|
|
« Ответ #34 : 29 ноября 2007, 13:28:50 » |
|
Зря забыли эту тему! Еще один пример: 29.11.07 14:09:45,080 # 88 <<< URL: http://savepic.ru/72049.jpgHTTP/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
|
|
« Ответ #35 : 29 ноября 2007, 14:48:11 » |
|
Мое вИдение настройки и логики работы опции привел в связанной теме: " Разрыв соединения после получения заголовков ответов 301, 302, 403, 404 и т.п.". Добавлю, что если URL попал в раздел "Кэшировать", то пишем в файл его тело. Если тела нет, то файл нулевой длины. Выдаем из кэша в обычном порядке, т.е. с ответом 200. Хорошо бы в будущем сохранять заголовки таких ответов, а пока можно обойтись и без этого... 301 и 302 сохраняем как сейчас - только заголовки в файл #m.
|
|
|
|
|
popkov
|
|
« Ответ #36 : 30 ноября 2007, 00:35:41 » |
|
Хочу добавить, что на некоторых серверах только в виде ответов "430 Forbidden" и можно получить полезное содержимое! Пример - по этой ссылке можно просмотреть первую страницу статьи (и она находится Google'ом!), но приходит страница в виде "430 Forbidden". Такие страницы не кэшируются. Однако в данном конкретном случае это следовало бы делать!
|
|
|
|
|
DenZzz
|
|
« Ответ #37 : 30 ноября 2007, 12:21:29 » |
|
Хочу добавить, что на некоторых серверах только в виде ответов "430 Forbidden" и можно получить полезное содержимое!
Только не 430, а 403 - про него уже упоминалось в этой теме и смежной. Спасибо за еще один живой пример! А то mai62 сомневается в актуальности этой темы...
|
|
|
|
|
popkov
|
|
« Ответ #38 : 30 ноября 2007, 20:05:33 » |
|
Спасибо за еще один живой пример! А то mai62 сомневается в актуальности этой темы...
Похоже, что следует исходить из принципа: всё, что не запрещено - разрешено! К сожалению, некторые сайты (как раз те, которые и следовало бы кэшировать, т.к. их внутренняя статистика посещений преследует цель отнюдь не облегчить жизнь человеку - а скорее при избыточном интересе к статье с данного IP перекрыть к ней доступ вообще!) готовы использовать этот принцип на все 100! Этот пример наглядно демонстрирует, насколько важно кэширование нестандантных ответов тапа 403, якобы Forbidden (а на самом деле вовсе не Forbidden, а реальная ценная информация!).
|
|
|
|
|
|