Добро пожаловать!






  Правила
 Забыли пароль?
 Регистрация

Разное полезное:

Главная arrow FAQ (ЧаВо)

FAQ

FAQВопросы о программе, логика работы, основные принципы
Страниц: 1

Вопросы:

Может ли HandyCache вырезать рекламу
Преимущество НС перед собственным кэшем браузера?
Нужен ли собственный кэш в браузере или теперь его можно отключить?
Какова логика программы? Где посмотреть описание Списков?
Какой порядок работы Списков? Есть схема?
Как работают "Исключения" из правил?
Как работает поле "Сайт" в списках правил?
Как добавить правило в Список HC?
Что такое Регулярные выражения (RegExp)?
Как восстановить испорченные списки?
Что такое "свежий файл"?
Как работает список "Не обновлять"?
Как работает список "Переадресация"?
Как работает список "Преобразование URL" во вкладке "Кэш"?
Что означает опция "Только для GET-запросов" в списках "Запись в кэш" и "Не обновлять"?
Почему HC сам включает/выключает правило (.)* в списке "Только из кэша"? / Как указать исключение для автономного режима?
Может ли НС использовать кэш от CoolProxy? Можно узнать отличия форматов кэшей этих программ?
Как изменить стандартную надпись при блокировании "Черным списком"?
Как рассчитывается экономия трафика?
Как сказывается на быстродействии количество правил в списках?
Каков принцип работы RAM-кэша (кэша в оперативной памяти)?
Что означают ответы сервера в "Мониторе" HC ?
Вопросы и Ответы
Может ли HandyCache вырезать рекламу
Сам HandyCache может блокировать загрузку рекламы с помощью Черного списка. Но гораздо более эффективно вырезать рекламу со страниц можно с помощью расширения Content Master. Это расширение во время загрузки страницы просматривает код страницы и фильтрует его с помощью правил. Content Master может использовать собственные правила, правила из списков HandyCache, правила AdBlockPlus и AdMuncher. Более подробно об этом расширении можно почитать здесь.
Преимущество НС перед собственным кэшем браузера?
Главное преимущество НС в том, что это общий кэш на все браузеры, установленные на вашем компьютере. Например, если вы используете браузер Opera для постоянного серфинга, но известно, что некоторые странички неправильно отображаются в Opera. Вы запускаете Internet Explorer и снова закачиваете информацию, которую вы только что скачали в Opera... НС эту ситуацию исключает!
У разных браузеров свои алгоритмы наполнения, использования и очистки кэша. Пользователь зачастую не имеет информации об этих алгоритмах, а о возможности управлять ими можно только мечтать... Все будет по-другому при использовании НС, где эти алгоритмы определяются списками правил!
Нужен ли собственный кэш в браузере или теперь его можно отключить?

Со своим кэшем браузер работает быстрее, чем по HTTP-протоколу с кэшем HC, поэтому рекомендуется оставить в браузере небольшой собственный кэш (около 5 Мб) для текущей работы. Большой кэш в браузере не нужен - это приведет только к нерациональному использованию места на диске: одни и те же файлы будут храниться в двух разных кэшах.
Также рекомендуется включить автоматическую очистку собственного кэша при выходе из браузера.

Если же нужен полный контроль над данными, отображаемыми браузером, то его собственный кэш следует отключить совсем или уменьшить до минимума с отметкой "Проверять наличие обновленных страниц при каждом посещении" (в Internet Explorer). Тогда все файлы браузер будет всегда запрашивать у HC, действиями которого вы можете полностью управлять с помощью списков правил и контролировать в "Мониторе" HC.

Какова логика программы? Где посмотреть описание Списков?

В программе есть несколько Cписков для управления контентом. По порядку:

  • Белый список - правило, сработавшее в этом списке, отменяет проверку других списков (опций). Можно настроить, на отключение каких списков будет влиять правило из Белого списка.
  • Переадресация - позволяет убрать из URL лишнее и сделать редирект на получившийся URL. Алгоритм работы подробно описан далее в соответствующем вопросе FAQ-а.
  • Черный список - позволяет вам запрещать доступ к URL, которые задаются маской либо регулярными выражениями. Черный список полезен, когда вам нужно, например, избавится от назойливой рекламы на часто посещаемых вами ресурсах.
  • Только из кэша - позволяет брать заданные файлы только из кэша. Если такого файла нет в кэше, то URL вообще не загружается (вы увидите в браузере красный "крестик"). В Опере это реализовано уже давно, но только для картинок. Позволяет закачать всю графику с нужного вам форума (а также *.css и *.js), просто отключив этот список из контекстного меню значка HC в трее. После этого можно включить этот режим, и быть уверенным что картинки всегда будут грузится из кэша. А если вдруг один из новичков форума вставит картинку на 1.5 мегабайта в свой ответ, вы не будете громко ругаться, потому что НС ее не загрузит! Правда, картинки не всегда можно распознать по URL, когда расширение у файла отсутствует, поэтому планируется в будущем реализовать обработку заголовка "Content-Type".
  • Не обновлять - этот список позволяет не обновлять файлы, которые уже есть в кэше. Если файла в кэше нет, то он грузится из Интернета. Вы можете игнорировать TTL (time to live - время жизни) объекта, т.к. скрипты и таблицы стилей, а тем более картинки, обновляются очень редко, то вставив сюда эти расширения, вы сэкономите трафик. В колонке "Критерий свежести" можно задать "время жизни" каждого объекта отдельно (опция "Не обновлять свежие файлы" должна быть включена). Подробнее про алгоритм работы списка читайте далее в соответствующем вопросе FAQ-а.
  • Запись в кэш - этот список заставляет НС сохранять объекты, указанные в списке, в свой кэш. Обычно это странички, таблицы каскадных стилей и javascripts. В принципе, можно вместо трех отдельных правил, написать одно .* т.е. кэшировать все!
  • Преобразование URL - служит для записи URL в кэш c отбрасыванием ненужных частей URL-а (SID-ов, доменов 3 уровня и т.п.), либо для изменения папки, в которую будут записываться файлы сайта. Например, на некоторых форумах каждому входу присваивается свой SID, а список "Преобразование URL" позволяет не качать каждый раз неизменившуюся страницу, а взять ее из кэша. Подробнее читайте далее в соответствующем вопросе FAQ-а.

Подробнее о назначении списков можно прочесть в Документации.

Какой порядок работы Списков? Есть схема?
Схема работы списков HandyCache

Примечание:

  • Списки HandyCache выделены желтым фоном. В каждом списке проверяется условие: "Список включен и URL соответствует хотя бы одному из включенных правил?".
  • В "Белом списке" можно выборочно отменить проверку других списков. На схеме показана ситуация, когда сработавшее правило "Белого списка" отменяет проверку списков: "Переадресация", "Черный список", "Только из кэша" и "Не обновлять".
    Подробнее о работе "Белого списка" читайте в Документации.
  • При проверке условия "Файл в Инете "большой"?" происходит запрос файла из Интернета и сравнение HTTP-заголовка "Content-Length" с предельным размером, заданным в настройках HC для "больших файлов" (опция должна быть включена).
Как работают "Исключения" из правил?
Схема работы исключений из правил

Каждое исключение работает только с тем правилом, в строке которого оно находится.

Как работает поле "Сайт" в списках правил?

Обработке правилом в поле "Сайт" подвергается заголовок "Referer" из запроса URL, если он там есть. Если заголовка "Referer" нет, то обрабатывается "URL".
Например, чтобы запретить загрузку всех картинок на сайте site.ru нужно создать такое правило в "Черном списке":


Правило Исключение Сайт
\.(jpg|jpeg|png|gif|bmp|ipg|img)$

 

site\.ru
Как добавить правило в Список HC?

Правила в списках принимаются в трех форматах:

  1. Регулярные выражения (RegExp).
  2. Выражения в упрощенном формате, начинающиеся с символа "+". Например: +*.ad?/php.*, где:
    • * - означает любое количество любых символов;
    • ? - означает 1 любой символ.
  3. В списках: "Белый", "Черный", "Только из кэша", "Не обновлять", "Запись в кэш" - в колонках "Правило" и "Исключение", а также в колонке "Условие" списка "Условных прокси" можно использовать IP-адреса серверов в одном из форматов:
    • IP 192.168.123.234
    • IP 192.168.12?.*
    • ip 192.168.123.\d+
    • IP 192.168.123.234 - 192.168.125.250
    Для работы правил по IP в HC должен быть включен DNS-кэш.
Что такое Регулярные выражения (RegExp)?

RegExp - Regular Expression или регулярные выражения - это средство произвести некоторые действия над текстом. Небольшое количество управляющих элементов регулярных выражений дает огромный набор средств, чтобы среди текста выделить/найти нужные части. Действия: копирование найденных кусков текста в переменную, удаление их из текста или замена.
Подробности спрашиваем у Google. Или читаем в Википедии. Также, можете скачать небольшое Руководство по RegExp (593KB), где изложены основы достаточно простым и понятным языком.

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

  • /x - игнорирование пробелов (имеются в виду "истинные" пробелы, а не метасимволы \s и пробелы, созданные через escape-последовательности).
    Например: "а б" эквивалентно "аб";
  • /i - игнорирование регистра (различия между заглавными и строчными буквами) как в латинице, так и в кириллице.
    Например: "фtДw" эквивалентно "ФTдW".
Как восстановить испорченные списки?

В папке НС есть фалы имя_списка.lso. Это резервные копии списков. Нужно переименовать имя_списка.lso в имя_списка.lst

Что такое "свежий файл"?
Это файл, лежащий в кэше и имеющий TTL ("время жизни"), которое задается в колонке "Критерий свежести" списка "Не обновлять". В течение указанного времени объект кэша не будет обновляться! Вы можете задавать разное время жизни для разных объектов кэша. Задав, например, 720 часов для скриптов, тем самым вы зададите "время жизни" кэшируемых скриптов, равное 30 дням.
Если перед значением "Критерия свежести" стоит "-" ("минус"), то это не влияет на порядок проверки актуальности критерия, а инвертирует только результирующее действие, т.е. не будут обновляться "старые файлы", для которых "Критерием свежести" уже просрочен. Это удобно для необновления, например, старых страниц форума, которые обычно не меняются. При этом "свежие" страницы будут закачиваться из Интернета.
Как работает список "Не обновлять"?
Схема работы списка Не обновлять

Краткое описание алгоритма работы списка "Не обновлять":

  1. Начинаем проверять список сверху.
  2. Если сработала строка без "Критерия свежести" => берем из кэша.
  3. Если сработала строка с положительным "Критерием свежести" и критерий:
    - актуальный (действующий) => берем из кэша;
    - устаревший (просроченный) => переход к следующей строке списка.
  4. Если сработала строка с отрицательным "Критерием свежести" и критерий по модулю:
    - актуальный (действующий) => переход к следующей строке списка;
    - устаревший (просроченный) => берем из кэша.
  5. Если не сработала ни одна строка (правило), то грузим из Интернета.

"Критерий свежести" можно задать в двух форматах:

  • Часы:Минуты - время, в течение которого после загрузки из Интернета файл считается свежим;
  • Д.М.Г - файл, закачанный раньше указанной даты, считается устаревшим.
  • Если перед значением "критерия свежести" стоит "-" ("минус"), то это не влияет на порядок проверки актуальности критерия, а инвертирует только результирующее действие, т.е. не будут обновляться "старые файлы" с просроченным "Критерием свежести".

Примечание:

  • Если файла нет в кэше, то он будет загружен из Интернета.
  • Снятие галки с опции "Не обновлять свежие файлы" отменяет проверку правил с заполненным полем "Критерий свежести".
  • Снятие галки списка "Не обновлять" отменяет проверку всех правил в списке, в т.ч. и с заполненным "Критерием свежести".
Как работает список "Переадресация"?

Список "Переадресация" ищет в URL строки, указанные в столбце "Правило", и заменяет их на соответствующие строки, указанные в столбце "Замена". Если была произведена хоть одна замена, то HC говорит браузеру, что якобы запрошенный URL отсутствует и предложит новый URL. После чего сам браузер запросит измененный URL.

  • Правило - искомая строка в виде RegExp;
  • Замена - строка для замены, в которой можно использовать подвыражения: \0 - искомая строка в исходном URL полностью; \1 - подвыражение в первых скобках; \2 - подвыражение во вторых скобках и т.д.;
  • Заменить все - если искомая строка встречается в URL несколько раз, то будут изменены все совпадения;
  • Обязательный - сложная опция, управляет порядком проверки правил. Если хотите, чтобы ваше правило всегда срабатывало, то поставьте галку. Проверяются только правила с признаком "Обязательный". Как только сработало хотя бы одно правило, работают все правила без признака "Обязательный" до следующего "Обязательного" или конца списка.

ВАЖНО: если сработало хоть одно правило списка "Переадресация", то URL должен обязательно измениться, иначе произойдет зацикливание и вы не получите нужную страницу! По той же причине рекомендуется составлять правила так, чтобы измененный URL не мог быть повторно изменен в списке "Переадресация".

Как работает список "Преобразование URL" во вкладке "Кэш"?

Список "Преобразование URL" работает по тому же принципу, что и список "Переадресация", но в отличии от него измененный URL используется только внутри НC исключительно при работе с кэшем. Для чего это нужно? Эта опция позволяет сохранять URL-ы с одинаковым содержимым в одном файле, отбрасывать постоянно изменяющиеся SID-ы форумов или "лишние" домены. Также можно сделать так, что нужный URL будет храниться в кэше в определенной папке с заданным вами именем.
ВАЖНО ПОМНИТЬ, что если при работе в интернете вы включили "Преобразование URL", то в автономном режиме оно должно быть также включено, иначе НС может не найти в кэше преобразованные URL-ы.

Что означает опция "Только для GET-запросов" в списках "Запись в кэш" и "Не обновлять"?

Когда браузер хочет получить файл, чтобы показать его, он шлет GET-запрос. Когда он отсылает на сервер данные (пост на форуме, заполненную форму и т.д.), используется POST-метод. Какой метод используется видно в логе. Галка нужна, чтобы не кэшировать (и всегда обновлять) данные, полученные POST-методом!

Почему HC сам включает/выключает правило (.)* в списке "Только из кэша"? / Как указать исключение для автономного режима?

Правило (.)* (или .*) в списке "Только из кэша" имеет специальное назначение и связано с включением "Автономной работы". Включение/выключение этой опции включает/выключает правило (.)* в списке "Только из кэша". Для чего это нужно? Если ввести исключение для правила (.)*, мы получаем исключение для "Автономного режима"!

Может ли НС использовать кэш от CoolProxy? Можно узнать отличия форматов кэшей этих программ?

HC может использовать кэш CoolProxy в режиме "Только для чтения". Для этого надо в настройках HC "Кэш / Каталог" в рабочем наборе указать каталог кэша CoolProxy в поле "Только для чтения" и ниже включить опции: "Режим совместимости с кэшем CoolProxy в каталоге только для чтения" и "Сохранять www." (в случае необходимости).

Некоторые отличия структур кэша HandyCache и CoolProxy v1.4 build 0256:

  • Символ ":" в HC заменяется на "!", в CP - на код "%3a"
  • HC игнорирует в адресе "www." и пишет в кэш уже без "www.", а CP оставляет (в новой версии 2.1.xxx появилась такая опция)
  • Если страничка приходит запакованная gzip, то у CP нет в конце файла записи "Content-Encoding:gzip" из-за чего такая страница, скопированная в кэш HC, может неправильно отобразиться в браузере
  • У CP можно встретить спец. пометки в конце имени нек. файлов в виде "._move_", "._hash_", "._f_" и др.
Как изменить стандартную надпись при блокировании "Черным списком"?

С версии HC 0.92b10h от 17.10.05 это можно сделать:

[+] На вкладке "Списки / Черный список" добавлено поле для ввода имени файла, который будет отправляться клиенту при срабатывании правила. Файл может быть HTML или картинка.

Как рассчитывается экономия трафика?
ЭКОНОМИЯ =  взятое из кэша  * 100%
 взятое из интернет + взятое из кэша 

Т.е. если экономия равна 50%, то это означает что трафик сэкономлен в 2 раза: половина скачана из интернет, половина взята из кэша. Экономия 100% если все взято только из кэша.

Как сказывается на быстродействии количество правил в списках?
В списках очень много правил
В ноябре 2005г. (еще на версии 0.92b11) один из пользователей провел такой эксперимент: он добавил в "Черный список" 15 тысяч правил из набора Agnis. Скорость обработки строк "на глаз" не упала или упала не сильно, а вот время старта/закрытия HC значительно возросло. Ну, и CPU грузит... На скрин-шоте обратите внимание на номера правил.
Каков принцип работы RAM-кэша (кэша в оперативной памяти)?

Принцип работы RAM-кэша:

  • Когда НС берет файл из дискового кэша и он по размеру подходит, этот файл (вместе с заголовком ответа) остается в памяти и выдается при следующем запросе. Кроме этого, в памяти хранятся результаты преобразования URL в имя файла в кэше и дата файла.
  • НС не сохраняет файл в RAM-кэш сразу при получении из интернета. Почему? У НС при получении файла в памяти нет его целиком. Данные поступают частями и сразу частями же отдаются клиенту и пишутся на диск. При получении файла его размер часто неизвестен. Кроме того, держать все загружаемые файлы в памяти неразумно.
  • Когда НС пишет файл на диск, старая версия этого файла удаляется из RAM-кэша и при следующем чтении с диска в RAM-кэш пишется новая версия.
Что означают ответы сервера в "Мониторе" HC ?
ОТВЕТ СЕРВЕРА ОПИСАНИЕ
200 OK Файл успешно загружен из Интернета без использования сжатия.
200 OK gzip Файл успешно загружен из Интернета с использованием GZIP-сжатия.
200 From cache Файл успешно загружен из дискового кэша HC (сработал список "Не обновлять", "Только из кэша" или удаленный сервер ответил, что файл не изменился - "304 Not Modified").
200 From RAMCache Файл успешно загружен из RAM-кэша HC (сработал список "Не обновлять", "Только из кэша" или удаленный сервер ответил, что файл не изменился - "304 Not Modified").
200 Connection established Получение данных из Интернета CONNECT-методом (HTTPS, SSL и т.д.). Такие данные не кэшируются. Этот ответ может сформировать внешний прокси-сервер или сам HC, когда работает напрямую.
206 Partial Content Удаленный сервер возвращает лишь часть данных затребованного объема. Такие данные не кэшируются. HC транслирует этот ответ сервера без изменений.
301 Moved Permanently Затребованная ссылка на удаленном сервере была навсегда перемещена на другое место, которое сообщается браузеру в заголовке Location. После этого браузер запросит загрузку новой ссылки. HC транслирует этот ответ сервера без изменений.
302 Moved Temporarily
302 Found
Затребованная ссылка временно перемещена на удаленном сервере на новое место, указываемое в заголовке Location. После этого браузер запросит загрузку новой ссылки. Такой же ответ формирует HC при срабатывании списка "Переадресация".
304 Not Modified Это ответ удаленного сервера или HC на заголовок lf-Modified-Since, когда файл в кэше HC или браузера не изменился с указанной даты. Причем, если файл выдается браузеру из кэша HC, то он заменит этот ответ на: "200 From cache (HC)". Если файл уже есть в кэше браузера и URL попадает в список "Не обновлять" или "Только из кэша", то HC сам формирует ответ "304 Not Modified (HC)" без обращения к Интернету.
403 Forbidden Загрузка файла запрещена удаленным сервером или HC (сработал "Черный список" или опция "Не загружать большие файлы").
404 Not Found Файл не найден. Такой ответ может формироваться сервером в Интернете или HC (если запрашиваемый файл не найден в кэше в "Автономном режиме" или сработал список "Только из кэша").
407 Proxy Authentication Required Прокси-сервер требует пройти авторизацию. HC формирует такой ответ, когда пользователю требуется - ввести имя и пароль, указанные в настройках HC "Настройки / Общие / Доступ".
430 Blocked Аналог заголовка "403 Forbidden". Формируется HC, когда ссылка заблокирована "Черным списком" и вместо нее браузеру отправлен "файл-заглушка", указанный в настройках ЧС - "Показывать файл".
500 Internal Server Error При обработке запроса на удаленном сервере один из его компонентов выдал аварийный отказ или столкнулся с ошибкой конфигурации. HC транслирует этот ответ удаленного сервера без изменений.
502 Bad Gateway /
Cannot connect
No answer
HTTPS server
HC получил недопустимые ответы другого сервера. Это происходит, когда не удалось установить соединение с сервером в Интернете, или тот разорвал соединение, не дав никакого ответа.
503 Service Unavailable Данная служба временно недоступна, но в будущем доступ к ней будет восстановлен. Например, не удалось получить IP на DNS-сервере.

Отличить заголовки, формируемые HandyCache, от заголовков, формируемых удаленным сервером, вы можете по признаку "(HC)" в конце ответа сервера в Мониторе.
Подробнее о всех вариантах ответов (кодах состояния) удаленного сервера вы можете прочесть в "Описании HTTP-протокола".