Ru-Board.club
← Вернуться в раздел «Программы»

» HandyCache - локальный кеширующий прокси сервер

Автор: unreal666
Дата сообщения: 04.02.2006 08:09
TOKKo
Просто замени exe-шник.
Автор: Interceptor
Дата сообщения: 04.02.2006 15:02
mai62
Разобрался, срабатывало правило черного списка Которое ad(s|v)...
Автор: BUCKS1
Дата сообщения: 04.02.2006 19:02
попросили настроить так чтоб все картинки с игрового портала combats.ru брались только из кэша (тоисть закачались туда один раз и навсегда) и не пытались обновиться, понимаю что надо сделать запись в "только из кэша" но не могу разобраться с регулярными выражениями, можно как-нибудь доходчивее объяснить правила написания скрипта, и показать пример.
Автор: V0lt
Дата сообщения: 04.02.2006 19:58
BUCKS1
Для картинок с "нормальным" урлом достаточно в списке "Не обновлять" включить правило (.)*\.(jpg|jpeg|png|gif|bmp|swf|ico)(.)?
Если там урлы какие-то особые, приведи несколько примеров, придумаем правило
Автор: mramor
Дата сообщения: 04.02.2006 23:37
имеется несколько замечаний и пожеланий.

на вкладке "Дозвон" поселились две опечатки: "Получно, байт" и "Дозваниваться при при поступлении запроса".
еще напрягает поведение информационного окошка. если при дозвоне открыть окно HC, то окошко через несколько секунд изчезает. если так и задумано, то может снова показывать его при закрытии основного окна?
и еще, можно ли в информационном окошке при дозвоне показывать название соединения по которому идет дозвон? а при ошибке хотя бы ее код (полный текст все равно не поместится).
а вообще, хотелось бы отдельного сочетания клавиш для каждого из соединений - так было бы намного удобнее.

пока все. и удачи в дальнейшей разработке программы.
Автор: Taimael
Дата сообщения: 05.02.2006 06:58
V0lt

Цитата:
Если там урлы какие-то особые, приведи несколько примеров, придумаем правило

например адреса аватаров на жж
конкретно там то все понятно, блок по адресу и все, но как убить такие картинки в общем случае??
Автор: and3636
Дата сообщения: 05.02.2006 08:14

Цитата:
например адреса аватаров на жж

Добавить в списки 4 и 5 правило (.)*livejournal.com/userpic/(.)*

mai62

А вообще обработка урлов без явного расширения это серьёзная тема для экономии трафика(что собственно главный смысл программы).Ведь работает же HC с строкой Content-length: ,так почему бы не приделать и обработку Content-Type: ? Эту опцию можно привязать к списку 4 и 5 как задаваемый порог.
Автор: C0USIN
Дата сообщения: 05.02.2006 09:34
and3636

Цитата:
приделать и обработку Content-Type:

Полностью согласен. Давно пора!
Автор: V0lt
Дата сообщения: 05.02.2006 09:34
and3636

Цитата:
так почему бы не приделать и обработку Content-Type: ?

в принципе возможно, только проверять на Content-Type надо будет через инет, сам файл качаться не будет

Автор: C0USIN
Дата сообщения: 05.02.2006 09:36
unreal666

Цитата:
А для 2-ой копии приходится передачу данных приостанавливать.

Начинаю чувствовать себя в танке :-\
Зачем приостанавливать?

Добавлено:
Interceptor

Цитата:
Я сижу в AvantBrowser и подобная ситуация (когда одновременно два раза грузится один и тот же ресурс (страница, картинка, скрипт, и т.п.)) для меня очень типична

Ты уверен? Он точно пытается две картинки качать параллельно?
Если да, то на помойку такие браузеры!
Автор: V0lt
Дата сообщения: 05.02.2006 09:42
and3636
послушаем что mai62 скажет
Автор: Interceptor
Дата сообщения: 05.02.2006 09:51
C0USIN
Это не браузер, жто надстройка над IE. Все остальное меня в нем устраивает.
Автор: and3636
Дата сообщения: 05.02.2006 09:56

Цитата:
послушаем что mai62 скажет

all
Желательно чтоб заинтересованные в этой опции оставили комменты.

Автор: unreal666
Дата сообщения: 05.02.2006 10:23
C0USIN

Цитата:
unreal666

Цитата: А для 2-ой копии приходится передачу данных приостанавливать.     


Начинаю чувствовать себя в танке :-\
Зачем приостанавливать?
Автор: C0USIN
Дата сообщения: 05.02.2006 11:09
unreal666
Он мог бы ответить и передавать получаемые данные параллельно двум клиентам.
Автор: DOE_JOHN
Дата сообщения: 05.02.2006 11:23
mai62
Чисто косметическое пожелание. Открой Настройки->Кеш и посмотри, например, в левый нижний угол окна программы. Какая пирамида выросла.
Автор: unreal666
Дата сообщения: 05.02.2006 11:35
C0USIN

Цитата:
Он мог бы ответить и передавать получаемые данные параллельно двум клиентам.

Каким образом? Страницы то запрашивают данные в разное время. Т.е. одна копия уже закачала кусок данных, а вторая копия только их затребовала.
Автор: Interceptor
Дата сообщения: 05.02.2006 13:34
and3636
Заинтересованные в какой конкретно опции? В одновременной передаче нескольким клиентам?

unreal666
насколько я понял суть работы HandyCache как раз состоит в том, что он "удерживает" браузер, говоря ему, что типа данные есть, мы их качаем... Но не передает их браузеру до тех пор пока они полностью не будут в кеше. Так, что имхо, реализовать такую фичу, не сложно. Достаточно второму потоку все так же говорить, что данные есть, мы их качаем, а передать результат скачанных данных первого потока...
Автор: unreal666
Дата сообщения: 05.02.2006 13:42
Interceptor

Цитата:
Но не передает их браузеру до тех пор пока они полностью не будут в кеше.

Не знаю что у тебя, диалап или выделенка.
Но на диалапе видно, что картинка появляется частями, т.е. скорее всего он их берет не из кэша HC (если их там еще нет). Скорее всего они параллельно передаются браузеру и сохраняются в кэше.
Автор: Interceptor
Дата сообщения: 05.02.2006 14:18
unreal666
Хм, есть и диалап и выделенка. У меня картинка показывается только после того как в мониторе HandyCache показывается, что она 100% закачана.
Автор: mozy18
Дата сообщения: 05.02.2006 14:26
mai62
Спасибо за замечательную программу. Пользуюсь с версии 092b. Можно ли в программе сделать вкладку, где бы отображались затраты за соединение.
Желательно чтоб можно было:
- настроить стоимость по различным промежуткам времени суток и дней недели (с учетом праздников)
- учет мог вестись и как по объёму трафика (для тех у кого выделенка), так и по времени соединения (хотя я видел тарифы у провайдеров, где стоимость складывалась из обоих составляющих)
- для оплаты по объёму трафика, желательно бы разделить стоимость исходящего и входящего трафика, а так же указать интервал тарификации, кБ
- вывести плавающее окошко, отображающее скорость скачивания (наподобие BWMeter)
Автор: pop2ROOT
Дата сообщения: 05.02.2006 14:36
mozy18
настроить подсчет прошедшего через сабж трафика наверное можно, но ты не забывай, что посчитает он ТОЛЬКО то, что прошло через него - а у тебя весь трафик идет через НС? и почта? и всякие другие приколы?

BWMeter и подобные проги подключают в соединение свой драйвер, который считает ВСЕ, а сабж работает по-другому, вот в чем вопрос.
Автор: C0USIN
Дата сообщения: 05.02.2006 14:38
Interceptor

Цитата:
У меня картинка показывается только после того как в мониторе HandyCache показывается, что она 100% закачана.

Это одна из причин, почему мне не нравится IE. Он никогда не покажет страницу, пока не скачал ее полностью.

Цитата:
насколько я понял суть работы HandyCache как раз состоит в том, что он "удерживает" браузер, говоря ему, что типа данные есть, мы их качаем... Но не передает их браузеру до тех пор пока они полностью не будут в кеше.

Ты не прав. Полученные данные синхронно передаются браузеру.

Добавлено:
unreal666

Цитата:
Каким образом? Страницы то запрашивают данные в разное время. Т.е. одна копия уже закачала кусок данных, а вторая копия только их затребовала.

Если второй клиент затребовал объект, который в данный момент качается, то HC должен ему мгновенно передать ту часть, что уже получена а далее синхронно с первым клиентом отсылать оставшиеся данные.

Добавлено:
Interceptor

Цитата:
Заинтересованные в какой конкретно опции?

В обработке поля Content Type:
Автор: cluster
Дата сообщения: 05.02.2006 15:14
И всё-таки мне интересно разобраться с галками:

Код: [ ] Добавить Accept-Encoding: gzip, deflate при загрузке из монитора
[ ] Добавить Accept-Encoding: gzip, deflate при загрузке из браузера
Автор: mai62
Дата сообщения: 05.02.2006 17:09
mramor

Цитата:
на вкладке "Дозвон" поселились две опечатки: "Получно, байт" и "Дозваниваться при при поступлении запроса".

Спасибо, поправлю.

Цитата:
еще напрягает поведение информационного окошка. если при дозвоне открыть окно HC, то окошко через несколько секунд изчезает. если так и задумано, то может снова показывать его при закрытии основного окна?
и еще, можно ли в информационном окошке при дозвоне показывать название соединения по которому идет дозвон? а при ошибке хотя бы ее код (полный текст все равно не поместится).
а вообще, хотелось бы отдельного сочетания клавиш для каждого из соединений - так было бы намного удобнее.

Согласен. Сделать надо много, а времени мало. Вот и приходится выбирать, что раньше делать.
and3636

Цитата:
А вообще обработка урлов без явного расширения это серьёзная тема для экономии трафика(что собственно главный смысл программы).Ведь работает же HC с строкой Content-length: ,так почему бы не приделать и обработку Content-Type: ? Эту опцию можно привязать к списку 4 и 5 как задаваемый порог.

Content-length - эту информацию можно получить из ответа сервера. Если перед закачкой каждого файла сначала запрашивать информацию о нем, получится долго и дорого. Можно еще подумать, если это делать выборочно.
Interceptor

Цитата:
насколько я понял суть работы HandyCache как раз состоит в том, что он "удерживает" браузер, говоря ему, что типа данные есть, мы их качаем... Но не передает их браузеру до тех пор пока они полностью не будут в кеше. Так, что имхо, реализовать такую фичу, не сложно. Достаточно второму потоку все так же говорить, что данные есть, мы их качаем, а передать результат скачанных данных первого потока...

НС ничего не удерживает. Все передается клиенту по мере поступления.
Чтобы сделать то, что вы хотите придется второму запросившему дождаться конца закачки файла и брать его уже из кеша. А что делать, если файл качается, но в кеш согласно правилам не пишется?
unreal666

Цитата:
Скорее всего они параллельно передаются браузеру и сохраняются в кэше.

Так и есть.
mozy18

Цитата:
Желательно чтоб можно было:
- настроить стоимость по различным промежуткам времени суток и дней...

Это можно было бы сделать. Но учитывая сказанное pop2ROOT это откладывается в пользу функций, на которые НС ориентирован в первую очередь.
C0USIN

Цитата:
Если второй клиент затребовал объект, который в данный момент качается, то HC должен ему мгновенно передать ту часть, что уже получена а далее синхронно с первым клиентом отсылать оставшиеся данные.

Это возможно хотя и сложно (это происходит в разных потоках, их нужно аккуратно синхронизировать чтобы не испортить данные), но при условии если файл пишется в кеш.
cluster

Цитата:
И всё-таки мне интересно разобраться с галками:

Нижнюю галку нужно включать, если не смотря ни на что хочешь получить gzip.
Автор: Interceptor
Дата сообщения: 05.02.2006 17:59
mai62

Цитата:
А что делать, если файл качается, но в кеш согласно правилам не пишется?

Насколько я понимаю суть все файлы при закачке из инета закачиваются в поток TFileStream/TMemoryStream и у тебя массив этих потоков. Можно, закачав полностью нужную часть, передать ее тому потоку браузера, который ее запрашивал, далее поискать еще потоки браузера, которые ее хотели, если их нету, то, если этот контент (тип данных) нужно сохранять сохранить TFileStream.SaveToFile(), иначе перейти на finally часть и TFileStream.Free... Если же были еще потоки, которыее ее запрашивали, от передать и им...


Цитата:
НС ничего не удерживает. Все передается клиенту по мере поступления.

Хм, странно. Честно говоря у меня возникло это впечатление из-за того, что сейчас Avant Browser стал вести себя странным образом. Объясняю. К примеру, качается html страничка. Раньше в процессе закачки можно было посмотреть исходный код еще в процессе закачки (ессно не полный) ну и прогресбар бежал, что свидетельствовало о получении данных. Сейчас при попытке скачать эту же страничку через HandyCache исходный код не доступен до тез пор, пока в мониторе программы не отобразиться, что страничка на 100% скачана ей. Соответственно прогресбар тоже не бежит... Только после того как страница на 100% скачана программой она моментально появляется в браузере. Как такое поведение не расценивать как "данные передаются клиенту только после 100% загрузки". Под страницей я подразумеваю 1 файл. То есть твою фразу
Цитата:
Все передается клиенту по мере поступления.
могу принять но в расчете из того, что да, это справедливо для реальной страницы, содержащей ссылки на скрипты, апплеты, картинки, стили ... То есть скачали страницу - передали клиенту, потом скачали картинку передали клиенту и т.п. А не ждали пока весь контент скачается и только после этого передавали...

Не знаю почему у меня именно такое поведение HandyCache и правильно ли оно...
Автор: V0lt
Дата сообщения: 05.02.2006 18:07
mai62

Цитата:
Если перед закачкой каждого файла сначала запрашивать информацию о нем, получится долго и дорого.

Ты прав будет очень долго. Имхо лучше не заморачиваться, а сразу сделать сохранение заголовков.
В качестве тестового варианта предлагаю для файла-контента создавать файл заголовок типа FileName#t
Вариант не ахти (если сохранять все заголовки, то кол-во файлов в кеше может почти удвоиться), зато легко реализуемый.

Цитата:
Можно еще подумать, если это делать выборочно.

Хорошая идея
Например: Если расширение не .jpg (.jpeg), а в Content-Type написано JPEG, то создать заголовок.
Так как такое вречается не очень часто, то файлы-заголовки весь кеш не загадят
Если еще что-нибудь подобное потребуется, можно будет добавить.


Цитата:
Если второй клиент затребовал объект, который в данный момент качается, то HC должен ему мгновенно передать ту часть, что уже получена а далее синхронно с первым клиентом отсылать оставшиеся данные.


Цитата:
Это возможно хотя и сложно (это происходит в разных потоках, их нужно аккуратно синхронизировать чтобы не испортить данные), но при условии если файл пишется в кеш.

ИМХО надо делать так
Когда получаем запрос, смотрим какие запросы уже обрабатываются и если получаем совпадение, то ждем пока идентичный URL закачается. Затем обрабатывать урл, так как если бы он попал в список "Не обновлять"
но если учесть что HC - это персональный локальный прокси сервер, то на эту фичу можно временно забить.
Автор: unreal666
Дата сообщения: 05.02.2006 18:13
Interceptor

Цитата:
сейчас Avant Browser стал вести себя странным образом. Объясняю. К примеру, качается html страничка. Раньше в процессе закачки можно было посмотреть исходный код еще в процессе закачки (ессно не полный) ну и прогресбар бежал, что свидетельствовало о получении данных. Сейчас при попытке скачать эту же страничку через HandyCache исходный код не доступен до тез пор, пока в мониторе программы не отобразиться, что страничка на 100% скачана ей. Соответственно прогресбар тоже не бежит... Только после того как страница на 100% скачана программой она моментально появляется в браузере.

Только что попробовал в Avant'е - все нормально, можно смотреть исходники еще недокачанной страницы. Возможно страницы, исходники которых ты пытался смотреть, были перегружены скриптами. Вот браузер и был занят обработкой скриптов, а не предоставлением тебе исходников. Это нормальное поведение браузеров, основанных на ядре IE.
Автор: and3636
Дата сообщения: 05.02.2006 18:39
mai62

Цитата:
Content-length - эту информацию можно получить из ответа сервера. Если перед закачкой каждого файла сначала запрашивать информацию о нем, получится долго и дорого. Можно еще подумать, если это делать выборочно

Может я неправильно понимаю но:
Когда начинается закачка файла cmd> GET http://img435.imageshack.us/img435/9196/hc0933ig.png HTTP/1.0
HC получает заголовок файла-

hdr> HTTP/1.1 200 OK
hdr> Content-Type: image/png
hdr> ETag: "-1249614453"
hdr> Accept-Ranges: bytes
hdr> Content-Length: 13776
hdr> Date: Sun, 05 Feb 2006 16:21:51 GMT
hdr> Server: lighttpd/1.4.8
hdr> Connection: close

и опция "Не загружать большие файлы" успевает среагировать на Content-Length: 13776.
Так в чём проблема среагировать и на Content-Type: image/png ,допустим, отказом загрузки ?? Ведь весь заголовок уже получен.
Автор: unreal666
Дата сообщения: 05.02.2006 18:54
and3636

Цитата:
и опция "Не загружать большие файлы" успевает среагировать на Content-Length: 13776.
Так в чём проблема среагировать и на Content-Type: image/png ,допустим, отказом загрузки ?? Ведь весь заголовок уже получен.

Для списка "Запись в кэш" - прокатит, а вот как реализовать, если это для списков "Не обновлять" и "Только из кэша". Заголовок то не известен.
Скорее всего только так, как написал V0lt, но это увеличить нагрузку на проц и чаще придется обращаться к диску.

V0lt

Цитата:
Например: Если расширение не .jpg (.jpeg), а в Content-Type написано JPEG, то создать заголовок.
Так как такое вречается не очень часто, то файлы-заголовки весь кеш не загадят
Если еще что-нибудь подобное потребуется, можно будет добавить.

Файлы то не загадят, но проверять на присутствие заголовков придется для всех файлов, которые запрашиваются и есть в кэше.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: грабилка экрана под OpenGL


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.