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

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

Сообщений: 5513



« : 10 марта 2007, 19:19:50 »

Предлагаю подумать над возможностью кэшировать не только благополучные исходы (типа 200), но и некоторые негативные (типа 404). 404, например, каждый раз будет иметь место, если на любимом сайте нет favicon.ico, а браузер каждый раз его запрашивает. Либо какая-то ссылка на странице устарела.



 Отлично! Реализовано с версии HC 1.0 RC1 с помощью скриптов Lua !
« Последнее редактирование: 11 января 2008, 08:19:46 от DenZzz » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #1 : 10 марта 2007, 19:44:02 »

Предлагаю подумать над возможностью кэшировать не только благополучные исходы (типа 200), но и некоторые негативные (типа 404).

Уже как-то обсуждалось...

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

В общем, я вижу реализацию этой опции по образцу существующего DNS-кэша, т.е. хранить отрицательные ответы в БД с ограничением на максимальное количество хранимых записей и с настройкой их TTL...
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #2 : 13 марта 2007, 12:23:11 »

В общем, я вижу реализацию этой опции по образцу существующего DNS-кэша, т.е. хранить отрицательные ответы в БД с ограничением на максимальное количество хранимых записей и с настройкой их TTL...
Можно держать их в индексе. Так же как и ответы 301, 302. Кстати, для последних, на мой взгляд, тоже нужно свое TTL, не ассоциированное как сейчас со списками "Т" и "Н".
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #3 : 13 марта 2007, 16:31:00 »

Можно держать их в индексе. Так же как и ответы 301, 302. Кстати, для последних, на мой взгляд, тоже нужно свое TTL, не ассоциированное как сейчас со списками "Т" и "Н".

Можно, но только не в том индексе, который будет описывать файлы, лежащие в кэше!
А в каком-то отдельном индексе специально для ответов сервера без передачи файла (301, 302, 403, 404 и т.д.).
А сам этот индекс, ИМХО, должен представлять собой БД по типу DNS-кэша...
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #4 : 13 марта 2007, 19:23:23 »

Можно, но только не в том индексе, который будет описывать файлы, лежащие в кэше!
Можно и в том же индексе. В индекс добавится только байт кода ответа. Не надо будет зато создавать отдельную структуру. Индекс по мере ненадобности будет выгружаться из памяти (а точнее замещаться другими). Еще удобство: грузится индекс - автоматом грузится метаинформация о всех файлах сайта, в т.ч. и об отсутствующих/перемещенных. И когда браузер тупо попросит favicon.ico, никуда дополнительно лезть уже не надо. И специальных файлов на диске создаваться (как сейчас для ответов 301 и 302 с окончанием #m в расширении) не требуется.
Кстати, ответь, плиз, если знаешь: программистская работа над внедрением индексов ведется, или эта идея существует пока на уровне наших обсуждений на форуме и неочевидно, будет ли вообще реализовываться?
« Последнее редактирование: 13 марта 2007, 19:34:57 от Михаил » Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #5 : 13 марта 2007, 20:22:00 »

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

Скорее последнее... В ближайших планах добавить pipelining и несколько мелких фич, пофиксить основные баги и отрелизить v1.0 в таком виде. А потом начать писать v2.0 "с чистого листа" на модульно-плагинной основе, чтобы работу по добавлению новых фич можно было распараллелить, т.к. mai62 один уже просто не справляется с потоком запросов...

Но обсуждать, тем не менее, новые опции надо, чтобы была база для будущей работы... Подмигивающий
Сообщить модератору   Записан
Дем
Постоялец
***

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

Сообщений: 167



« Ответ #6 : 20 марта 2007, 13:32:04 »

Цитировать
А в каком-то отдельном индексе специально для ответов сервера без передачи файла (301, 302, 403, 404 и т.д.).
Вообще говоря ответы 4** - с передачей файла.
А на некоторых сайтах даже контент с таким кодом передаётся (с целью недопущения его сохранения)
Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #7 : 20 марта 2007, 15:43:04 »

А потом начать писать v2.0 "с чистого листа" на модульно-плагинной основе, чтобы работу по добавлению новых фич можно было распараллелить
А исходники открывать не планируется?
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #8 : 20 марта 2007, 17:09:14 »

Вообще говоря ответы 4** - с передачей файла.
А на некоторых сайтах даже контент с таким кодом передаётся (с целью недопущения его сохранения)

Да, бывает и такое, но в большинстве случаев "404" используется по своему прямому назначению и вместе с ним передается информация типа: "Нет такой страницы", не имеющая для нас практической значимости! Следовательно, и сохранять ее не обязательно - достаточно сохранить сам факт отрицательного ответа, чтобы повторно не обращаться к серверу какое-то время!

Можешь привести реальные URL, где "404" используется для передачи "полезного" контента с целью недопущения его сохранения?
Как HC будет отличать "полезный" контент от "бесполезного"?



А исходники открывать не планируется?

Спроси у mai62... Подмигивающий
Сообщить модератору   Записан
Дем
Постоялец
***

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

Сообщений: 167



« Ответ #9 : 22 марта 2007, 03:54:04 »

Цитировать
Можешь привести реальные URL, где "404" используется для передачи "полезного" контента с целью недопущения его сохранения?
Как HC будет отличать "полезный" контент от "бесполезного"?
Реальные УРЛ - сейчас не припомню, но это был сайт с картинками (которые собственно и защищались)
Как - наверно как и винда - по размеру. Если больше типичного значения для пустой страницы (скажем 0.5-1-2к) - то хранить
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #10 : 09 апреля 2007, 13:34:04 »

Можешь привести реальные URL, где "404" используется для передачи "полезного" контента с целью недопущения его сохранения?
Как HC будет отличать "полезный" контент от "бесполезного"?
Вот здесь набрел на пример. Вместе с "404 Not Found" качается 114x2=228 кБ!!! данных. Полезность их оценить не могу, но судя по названию файла и тайному способу его закачки, подозреваю только вредность.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #11 : 09 апреля 2007, 14:09:31 »

Вот здесь набрел на пример. Вместе с "404 Not Found" качается 114x2=228 кБ!!! данных.

Что-то не вижу!  Непонимаю Из "404" только 2 "мелких" картинки:
Цитировать
09.04.2007/14:59:18 local/127.0.0.1 http://www.thg.ru/images/1x1.gif 0 4605/219 0 370 "404 Not Found"
09.04.2007/14:59:19 local/127.0.0.1 http://www.thg.ru/image/1x1.gif 0 853/219 0 369 "404 Not Found"


Точный URL твоих "404" не припомнишь?
Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #12 : 09 апреля 2007, 15:11:11 »

Что-то не вижу!  Непонимаю Из "404" только 2 "мелких" картинки: 

Точный URL твоих "404" не припомнишь?
Они ("мелкие картинки") и есть. На самом деле это html-файл размером ~114 КБ.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #13 : 09 апреля 2007, 16:08:19 »

На самом деле это html-файл размером ~114 КБ.

Если кликать по твоей ссылке, то эти "404" гораздо меньше:

Цитировать
09.04.2007/14:59:18 local/127.0.0.1 http://www.thg.ru/images/1x1.gif 0 4605/219 0 370 "404 Not Found"
09.04.2007/14:59:19 local/127.0.0.1 http://www.thg.ru/image/1x1.gif 0 853/219 0 369 "404 Not Found"

Всего ~5 кб в сумме! Загружал ту страницу раз 10 - размер "404" всегда был не больше ~5 кб!

А вот если, например, попытаться загрузить ссылку http://www.thg.ru/images/1x1.gif в отдельном окне, то сервер отдает вместо нее главную страницу того сайта! И хранить ее в кэше в разных файлах для каждого такого "404" - это бессмысленно замусоривать кэш!

В общем, это бесполезный контент, который хранить даже вредно...  Прикольно
« Последнее редактирование: 09 апреля 2007, 16:16:18 от DenZzz » Сообщить модератору   Записан
Михаил
Gold beta tester
*****

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

Сообщений: 5513



« Ответ #14 : 09 апреля 2007, 16:51:03 »

И хранить ее в кэше в разных файлах для каждого такого "404" - это бессмысленно замусоривать кэш!

В общем, это бесполезный контент, который хранить даже вредно...  Прикольно
Хранить - и так понятно. Тут качать тело неизмеримо вреднее! Придется правило в Черный список писать. Неплохо бы знать, много ли таких фокусов в сети? Ежели так, то имеет смысл увидев "404" останавливать закачку.

PS Зашел на тот же адрес через другого провайдера - результат тот же: файл 1x1.gif занимает 114 кБ.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #15 : 09 апреля 2007, 19:19:42 »

Зашел на тот же адрес через другого провайдера - результат тот же: файл 1x1.gif занимает 114 кБ.

Заходил через двух разных провайдеров - не более 3 кб на "404", если не открывать в отдельном окне! Думаю, сервер Referer парсит...
Сообщить модератору   Записан
cepera_ang
Beta tester
*****

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

Сообщений: 355


« Ответ #16 : 09 апреля 2007, 20:17:01 »

Кстати на тхг вообще на любой 404 выдается полностью главная страничка зачем-то. Бывает откроешь старенькую страничку, а картинки по старым ссылкам пытаются загружаться, и так штук 40 по сто кбайт...
Сообщить модератору   Записан
Дем
Постоялец
***

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

Сообщений: 167



« Ответ #17 : 09 апреля 2007, 22:40:31 »

Цитировать
Кстати на тхг вообще на любой 404 выдается полностью главная страничка зачем-то. Бывает откроешь старенькую страничку, а картинки по старым ссылкам пытаются загружаться, и так штук 40 по сто кбайт...
  Ну это его так настроили. Не очень умно, правильнее был бы редирект на главную, а не отдача её с 404.
Но надо отметить - браузер её отображает.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #18 : 09 апреля 2007, 23:59:01 »

Кстати на тхг вообще на любой 404 выдается полностью главная страничка зачем-то.

Опытным путем обнаружил, что главная страница thg.ru на "404" всегда грузится только в Опере, а в Макстоне (IE) такой проблемы нет!
P.S. Вот поэтому я и не люблю Оперу...  Показывает язык
Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #19 : 11 апреля 2007, 11:06:04 »

Опера не виновата в том, что у кого-то руки не из того места растут Улыбка

Надо как-то бороться с такими глючными серверами.  Непонимаю
« Последнее редактирование: 11 апреля 2007, 11:18:13 от Сергей » Сообщить модератору   Записан
Страниц: [1] 2  Все   Вверх
  Отправить эту тему    Печать  

 
Перейти в: