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

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

Автор: VideoHEAD
Дата сообщения: 24.02.2006 07:17
DOE_JOHN

У мну нету такого, хотя я AkelPad юзаю...
Автор: V0lt
Дата сообщения: 24.02.2006 10:27
mai62
C0USIN
привожу свой вариант универсального преобразования URL->FILE и наоброт

Мой вариант немого отличается от того что реализовано в HC, поэтому прошу сильно не бить
(мелким шрифтом "теория", нормальным - сам алгоритм)
[more]Немного теории, или как я ее понимаю
Все свои рассуждения вел основываясь на RFC 2068

Общий вид HTTP URL следующий (3.2.2 HTTP URL):

http_URL = "http:" "//" host [ ":" port ] [ abs_path ]

Это именно то, что браузер пошлет на сервер - вот его мы и будем сохранять.

Расмотрим более подробно abs_path
abs_path = "/" rel_path
rel_path = [ path ] [ ";" params ] [ "?" query ]


В итоге получим конструкцию, с которой и будем работать:

http_URL = "http:" "//" host [ ":" port ] "/" [ path ] [ ";" params ] [ "?" query ]

А теперь по порядку:


http_URL - во всем урле не могут присутствовать след символы
unsafe = #0..#31, #127, #32, <">, "#", "<", ">"
символ "%" может использовать только в виде - "%" HEX HEX


http:// - тут все понятно


host - это либо IP адрес (в точечно-десятичной форме) либо допустимое доменное имя машины, как определено в разделе 2.1 RFC 1123


":" port - состоит только из цифр, пошется после двоеточия


"/" - важный момент, после host (или host:port) обязательно должен идти символ "/", даже если в браузере набрать site.com, то браузер обязан послать запрос вида http://site.com/


path - расмотрим подробнее
path = fsegment *( "/" segment )
fsegment = 1*pchar
segment = *pchar
Т.е. path состоит из сегментов разделенных симвволом "/" причем первый сегмент не может быть путым.
Вывод: вполне возможен такой урл - http://site.com/a//////
в сегментах (fsegment, segment) нельзя использовать
unsafe, ";", "/", "?", ":", "@", "&", "=", "+"


";" params - начинается с символа ";" который находится раньше "?". Т.е. если сначала имеем символ "?", а потом ";", то это уже не params, а query.
расмотрим подробнее:
params = param *( ";" param )
param = *( pchar | "/" )
Т.е. params состоит из param разделенных симвволом ";", к тому же любой param может быть пустым.
в param нельзя использовать
unsafe, ";", "?", ":", "@", "&", "=", "+"
т.е. в отличии от fsegment и segment разрешен символ "/"

"?" query - все что идет после символа "?" - это query.
в query можно использовть любые символы кроме unsafe.


------------------------
Поехали:

В имени файла нельзя использовать след. символы:
<">, "*", "/", ":", "<", ">", "?", "\"(кроме как разделитель папок), "|"

Если сравнить с unsafe (#0..#31, #127, #32, <">, "#", "<", ">"), то видим, что символ "#" не может использоваться в урле, а в имени файла запросто. Его мы и будем использовать в качестве кодирования.

Осталось преообразовать символы "*", "/", ":", "?", "\", "|".
"*" - #x
"/" - \
":" - #!
"?" - #\
"\" - #~
"|" - #i
Идея такая: замену производить кодом не более чем в два символа.

К тому же мне кажется что query не стоит делить на кучу папок, а сохранять его в виде одного файла. Тогда имеем:
"*" - #x
"/" - \ - #% (для query)
":" - #!
"?" - #\ - #^ (для query)
"\" - #~
"|" - #i

---
Решение других проблем.

Чтобы сохранить редирект нужно к полученному имени добавить суффикс "#m"
Пример:
http://site.com/ -> CASHE\site.com\#m
http://site.com/page.htm -> CASHE\site.com\page.htm#m

Иногда после преобразования можно не получить имени файла, то в этом случае файл сохранять под именем "#_"
Пример:
http://site.com/ -> CASHE\site.com\#_
http://site.com/menu/ -> CASHE\site.com\menu\#_
PS: cуффикс "#_" можно также добавлять к файлам которые нельзя создать, потому что уже существует папка с таким же именем.

Если в полном имени файла получаем безамянные папки, то называем их "#n"
Пример:
http://site.com/a//// -> CASHE\site.com\a\#n\#n\#n\#_[/more]
Автор: DOE_JOHN
Дата сообщения: 24.02.2006 10:46
VideoHEAD
Сам не знаю. И уже перекачивал. Lister валиться на floating point division by zero. А ем emeditor нормально открыл.
Автор: C0USIN
Дата сообщения: 24.02.2006 11:33
V0lt
Можешь составить список тестовых http_URL, на которых можно было бы проверить алгоритмы.
Автор: mai62
Дата сообщения: 24.02.2006 12:56
and3636

Цитата:
В версиях 094b1 и 094b2 из кеша не загружаются любые файлы если в запрашиваемом адресе...

Разберусь
V0lt

Цитата:
привожу свой вариант универсального преобразования URL->FILE и наоброт

Прежде всего, спасибо за проделанную работу
То, что ты предлагаешь хорошо, но как быть с совместимостью?
C0USIN

Цитата:
Я не понял смысл преобразования // в ~ .
Страницы www.site.com//user и www.site.com/~user должны совпадать?

Я рассчитывал на то, что вероятность попадания на такие url невелика.

Цитата:
Кому интересно, вот статья которая надоумила меня попробовать Архивариус 3000

Напиши в ФАК о своем опыте.
unreal666

Цитата:
Мой вариант...

Поместил твой пост в ФАК
Автор: V0lt
Дата сообщения: 24.02.2006 16:07
mai62

Цитата:
То, что ты предлагаешь хорошо, но как быть с совместимостью?

Я знал что-ты это спросишь
Не знаю я что с ней делать. IMHO надо все продумать, обсудить, изобрести конвертер кеша и с некой новой версии сделать безусловный переход на новый тип кеша.

C0USIN

Цитата:
Можешь составить список тестовых http_URL, на которых можно было бы проверить алгоритмы.

Сам алгоритм пока никак не реализован. Хотя это не сложно. Если будет время может сделаю что-нибудь консольное.

Списки наверное можно добыть из журналов браузера и разных логов. Можно и самим придумать, только чтобы их проверить наверняка придется создать локальный сайт (это к веб-дизайнерам) и смотреть возможен ли такой урл или нет.
Автор: rs
Дата сообщения: 24.02.2006 16:11
mai62
... а вот полюбопытствовать только заради ...

УП,БП и ПП можно ожидать в ближайшее время? и когда?
Автор: C0USIN
Дата сообщения: 24.02.2006 17:06
mai62
Теперь, когда у нас есть список Преобразование URL, отпала необходимость в отдельной обработке удаления www.
Это можно и нужно реализовать одной строчкой в списке URLToCache.lst

Код: 1,True,^www.,,False,True,0
Автор: Shaman2
Дата сообщения: 24.02.2006 17:10
Подскажите, как подправить нижеприлагаемый фильтр, чтобы без проблем загружались файлы с download.overclockers.ru ?

16,True,+ad.*.*,+download.nai.com|+download.overclockers.ru,2
Автор: C0USIN
Дата сообщения: 24.02.2006 17:23
А так?
16,True,+ad.*.*,download\.nai\.com|download\.overclockers\.ru,0
Автор: rs
Дата сообщения: 24.02.2006 17:35
Условный Прокси
Безусловный Прокси
Пустой Прокси


как одно из следствий - обычный серфинг , к примеру через проксомитрон с webwarper и автовход(!) в варезник и др подобные места минуя проксомитрон

ну и прочие полезности со списками прокси по условиям и без условий, включая однокликовость переключений прокси в меню
Автор: mai62
Дата сообщения: 24.02.2006 19:00
rs

Цитата:
УП,БП и ПП можно ожидать в ближайшее время? и когда?

Ожидать можно. Когда точно не скажу, как вдохновение посетит
C0USIN

Цитата:
Теперь, когда у нас есть список Преобразование URL, отпала необходимость в отдельной обработке удаления www.

Почти так. Сечас этим можно управлять отдельно для нс-кэша и для ср-кэша.
Автор: ALeXkRU
Дата сообщения: 24.02.2006 19:11
Shaman2
C0USIN
18:10 24-02-2006
Цитата:
Подскажите, как подправить нижеприлагаемый фильтр, чтобы без проблем загружались файлы с download.overclockers.ru ?

16,True,+ad.*.*,+download.nai.com|+download.overclockers.ru,2

я думаю, что можно более широко разрешить - сайтов с загрузкой данных довольно много, примерно так (как раз вчера наткнулся и решил поменять фильтр ):
16,True,+ad.*.*,+download.,2
Автор: rs
Дата сообщения: 24.02.2006 19:21
mai62.

Цитата:
Ожидать можно.

продолжаем


а по поводу (примитивного для начала) простого списка истории межбраузерого (и межкомпьютерного путём слияния кешей) посещения страниц что можно сказать?

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

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

Автор: arsvrn
Дата сообщения: 24.02.2006 19:38
C0USIN
Поставил себе Архивариус и воспользовался твоими советами по использованию. Просто здорово все получается
Вот только изменил немного скрипт в шаблоне страницы просмотра:

Код: <script language="JavaScript">
<!--
FileName=document.title;
FileName=FileName.replace(/Z:\\Cache\\/i, "http://");
FileName=FileName.replace(/#_/, "");
FileName=FileName.replace(/\^\\/, "?");
FileName=FileName.replace(/\!/, ":");
FileName=FileName.replace(/\\/g, "/");
window.location.replace(FileName);
// --></script>
Автор: mai62
Дата сообщения: 24.02.2006 19:48
rs

Цитата:
а по поводу (примитивного для начала) простого списка истории межбраузерого (и межкомпьютерного путём слияния кешей) посещения страниц что можно сказать?

Мне кажется нужна программа, которая просмотрит кэш и выдаст список страниц, хранящихся в нем. Дальше нужны возможность просмотра страниц и поиск в них.
C0USIN
Архивариус может сделать список сайтов?
Автор: rs
Дата сообщения: 24.02.2006 20:15
mai62
а "по-быстрому" добавить одноуровневое меню для переключения прокси? - а?

это ж совсем несложно (с галкой "Одноуровевое меню выбора прокси" в настройках на странице определения прокси)


Добавлено:

Цитата:
Мне кажется нужна программа, которая просмотрит кэш и выдаст список страниц, хранящихся в нем. Дальше нужны возможность просмотра страниц и поиск в них.

да
это вполне очевидно

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

мне более интересно, что ты скажешь о возможности выделения "корневых" урлов и "вложенных", для показа первых в истории и исключения из неё вторых? - можешь ты их дифференцировать? - если нет, то программке-вьюеру не с чем пока даже будет работать
Автор: rubel
Дата сообщения: 24.02.2006 20:49
arsvrn
МОЛОДЕЦ!!!
Вот теперь действительно Полноценный поиск со всеми живыми ссылками.
Огромное вам спасибо с C0USIN за внедрение этой фичи в Архивариус.


Цитата:
Сложилось впечатление, что иногда при запуске Архивариус меняет свой IP, что не есть хорошо.

Да меняет.
Если у меня включена сеть,то он запускается с моим реальным IP,если нет тогда с
127.0.0.1:80/
Приходится отключать сеть в это время.Ну и ладно.
mai62

Цитата:
Архивариус может сделать список сайтов?

По моему нет,он индексирует все файлы в папке кеша.
Автор: arsvrn
Дата сообщения: 24.02.2006 21:11
rubel

Цитата:
Если у меня включена сеть,то он запускается с моим реальным IP,если нет тогда с
127.0.0.1:80/
Приходится отключать сеть в это время.Ну и ладно.

Я вышел из положения так. Поставил порт 8081 (и запретил его менять - на 80-м у меня НС). И если запустить Архивариус в момент, когда сеть отключена, то потом ее можно включать - IP не меняется и поиск работает.
Автор: ALeXkRU
Дата сообщения: 24.02.2006 21:41
Обновил черный список:
- суммарное число записей 180
- отключены фильтры (кому нужно - включайте):
для рисунков на mail.ru
для рисунков Ru.Board
для ВСЕХ рисунков по расширению
для рисунков в отдельных папках (типа img, image, images, imagelib, img234, i, pix, pict, ect... )
- в исключениях: сайты, содержащие download, downloads, desktop, country
- убраны дубли
ссылка - в шапке
(некоторые фильтры не проверены - могут блокироваться нужные сайты )
Автор: rubel
Дата сообщения: 24.02.2006 22:09
arsvrn
В самом деле работает по твоему методу,спасибо.
mai62

Цитата:
Архивариус может сделать список сайтов?

Сейчас посмотрел паку с индексом.Там есть файл [0.filenames] Т.е.названия файлов.

Код: D : \ H a n d y C a c h e \ C a c h e \ f o r u m . r u - b o a r d . c o m \ t o p i c . c g i ^ \ f o r u m = 5 & t o p i c = 1 5 6 5 4 & s t a r t = 1 0 6 0 D : \ H a n d y C a c h e \ C a c h e \ f o r u m . r u - b o a r d . c o m \ t o p i c . c g i ^ \ f o r u m = 5 & b m = 1 & t o p i c = 1 3 1 6 2 D : \ H a n d y C a c h e \ C a c h e \ f o r u m . r u - b o a r d . c o m \ t o p i c . c g i ^ \ f o r u m = 5 & b m = 1 & t o p i c = 1 3 1 6 2 & s t a r t = 2 0 D : \ H a n d y C a c h e \ C a c h e \ f o r u m . r u - b o a r d . c o m \ t o p i c . c g i ^ \ f o r u m = 5 & t o p i c = 1 6 3 9 7 & s t a r t = 9 0 0 D : \ H a n d y C a c h e \ C a c h e \ f o r u m . r u - b o a r d . c o m \ t o p i c . c g i ^ \ f o r u m = 5 & t o p i c = 1 5 6 5 4 & s t a r t = 1 0 8 0
Автор: C0USIN
Дата сообщения: 25.02.2006 00:07
arsvrn

Цитата:
изменил немного скрипт в шаблоне страницы просмотра:

Это не есть хорошо. А если я использую архивариус не только для поиска в кэше?
Тогда через браузер не смогу полноценно работать с другими индексами.
Корректнее было бы, чтобы на странице результатов, наряду с ссылками view и Download была независимая ссылка URL документа


Цитата:
Ссылку на сервер Архивариуса забил в закладки Оперы

Идеальный вариант - встроить его в стандартные поисковики. Надо поковыряться в search.ini


Цитата:
Сложилось впечатление, что иногда при запуске Архивариус меняет свой IP, что не есть хорошо

Да. неприятная фича. А если использовать вместо адреса имя компьютера?
Оно точно не меняется. Хотя... проверил - не помогает.

mai62

Цитата:
Архивариус может сделать список сайтов?

rubel уже откопал похоже может.
Автор: roman362
Дата сообщения: 25.02.2006 00:23
arsvrn

Цитата:
Вот только изменил немного скрипт в шаблоне страницы просмотра:

а можно его выложить а то сам в этом не разбираюсь
Автор: C0USIN
Дата сообщения: 25.02.2006 02:15
Кому не нравится цена Архивариуса, можно попробовать прикрутить Google Desktop Search
Возможно понадобится еще вот это
DNKA 0.48 - search tool for remote computer. It acts as a web server (search server) by interacting as a layer between Google Desktop Search (Enterprise) and user. And allow other users to search, view and download your files, emails, chats and web history.
Автор: Taimael
Дата сообщения: 25.02.2006 07:03
mail62

в "Преобразование URL" не работает "обнулить" и не запоминается установленная ширина столбцов
Автор: arsvrn
Дата сообщения: 25.02.2006 07:41
C0USIN

Цитата:
Идеальный вариант - встроить его в стандартные поисковики. Надо поковыряться в search.ini

Поскольку Архивариус выполняет Google-подобные запросы, то самое простое сдублировать в search.ini секцию Google и заменить там "http://www.google.com" на "http://127.0.0.1:8081" (на IP Архивариуса). И все работает.

Цитата:
Это не есть хорошо. А если я использую архивариус не только для поиска в кэше?
Тогда через браузер не смогу полноценно работать с другими индексами.

Согласен. Но если только для кеша - то так гораздо удобнее.

roman362
Файл "C:\Program Files\Archivarius\Server\View.htm" должен быть таким:

Код: <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>~FileName~</title>
</head>
<body>
<script language="JavaScript">
<!--
FileName=document.title;
FileName=FileName.replace(/Z:\\Cache\\/i, "http://");
FileName=FileName.replace(/#_/, "");
FileName=FileName.replace(/\^\\/, "?");
FileName=FileName.replace(/\!/, ":");
FileName=FileName.replace(/\\/g, "/");
window.location.replace(FileName);
// --></script>
</body>
</html>
Автор: DOE_JOHN
Дата сообщения: 25.02.2006 07:59
ALeXkRU
За список спасибо. Уже не валит total. Там что то с кодирвками было.
Автор: VideoHEAD
Дата сообщения: 25.02.2006 08:17
ALeXkRU

Ты как всегда великолепен.
Proxomitron must die!
Автор: rubel
Дата сообщения: 25.02.2006 13:51
mai62

Цитата:
Мне кажется нужна программа, которая просмотрит кэш и выдаст список страниц, хранящихся в нем. Дальше нужны возможность просмотра страниц и поиск в них.
C0USIN
Архивариус может сделать список сайтов?

Как я уже говорил выше Список страниц делает прожка DirHtml-4.72rus.
Создаёт индексный файл в папке кеша.Но вот как всё это дело прикрутить к Архивариусу
и чтоб работало как у arsvrn вот в чём вопрос. Думайте умные головы.
arsvrn C0USIN
Может что придумаете?

Автор: DOE_JOHN
Дата сообщения: 25.02.2006 14:11
Прям не знаю что твориться с черным списком или с системой.
ALeXkRU обносвил список и как я писал я его проверил на просмотр F3 в total. Все было нормально и я обновил его себе. А теперь опять та же бяка но уже с black.lst в напке с HC. Нормально его открывает на редактирование EmEditor показывает кодировку UTF-16LE with Signature. Texter2 показывает только яю1. А bred2 в таком же духе но дальше через символ квадратики.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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