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

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

Сообщений: 4


« : 24 марта 2007, 18:23:02 »

Если качать .gz (для остальных всё нормально) файлы через HC (например http://ftp.debian.org/debian/pool/main/a/a2ps/a2ps_4.13b.dfsg.1.orig.tar.gz) , то в конец добавляются заголовки. Файл то распаковывается нормально, но контрольная сумма уже не та, из-за чего линуху через HC не поставить, да и еще проблем может добавить. Версия HC - HandyCache098b1. Дополнительная инфа - надо мной родительский проски squid.
UPD: в таком виде файл хранится в кэше, если забрать через HC то мусор отрезается.
« Последнее редактирование: 24 марта 2007, 18:29:10 от Marvel » Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #1 : 24 марта 2007, 18:36:45 »

Если мусор отрезается, то почему linux не поставить?
Но глюк надо бы исправить, конечно.
Сообщить модератору   Записан
Marvel
Новичок
*

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

Сообщений: 4


« Ответ #2 : 24 марта 2007, 18:40:48 »

Если мусор отрезается, то почему linux не поставить?
Тогда только если через НС что не всегда возможно - я папку из кэша указывал с диска, пакеты .deb качаются нормально, а с .gz такая беда - надо теперь прогу писать готорая проедется по паре гигов исходников и поотрезает "хвосты" =)
UPD: кстати, у всех так НC ведет себя или это из-за сквида надо мной? Попробуйте скачать указанный файл и посмотреть хвост (но не у скачанного а в кэше).
UPD2: вот файлик полегче для проверки  : http://ftp.debian.org/debian/pool/main/c/crawl/crawl_4.0.0beta26-8.diff.gz   - 10 кб
Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #3 : 24 марта 2007, 20:00:41 »

Попробуйте скачать указанный файл и посмотреть хвост (но не у скачанного а в кэше).
Файл в кэше получился с хвостом и атрибутом Системный.

Вытащи файлы из кэша с помощью Offline Explorer и все исправится.
Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #4 : 24 марта 2007, 20:05:39 »

Кстати, лучше сразу из интернета качать оффлайн-браузером или качалкой, т.к. в кэш попадают не все скачанные файлы. Потому, что HC не поддерживает докачку.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #5 : 24 марта 2007, 20:16:40 »

Не совсем понимаю проблему.

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

Вытащи файлы из кэша с помощью Offline Explorer и все исправится.
А зачем ему "вытаскивать" эти файлы? Они у него и так лежат на диске без всяких хвостов в указаноой им при сохранении папочке.
Сообщить модератору   Записан
Marvel
Новичок
*

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

Сообщений: 4


« Ответ #6 : 24 марта 2007, 20:23:36 »

А зачем ему "вытаскивать" эти файлы? Они у него и так лежат на диске без всяких хвостов в указаноой им при сохранении папочке.
На диск они не сохраняются, они в линухе во временные при установке копируются, устанавливаются и потом чистятся, да и мало ли линуху переставить захочу. Вручную на диск тут не сохраняется, иначе бы и кэш незачем.  Себе то я утилиту написал что хвосты чистит, но решение не лучшее, бага не отменяет, тем более подтвердили что воспроизводится не только у меня.
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #7 : 24 марта 2007, 20:33:49 »

они в линухе во временные при установке копируются, устанавливаются и потом чистятся, да и мало ли линуху переставить захочу.
Не важно. Клиенту (без разницы браузер это или программа установки линуха) отдается без всяких хвостов. С хвостами - только хранится в кэше.

Цитировать
бага не отменяет
Я вижу баг в том, что архиву, как и обычному html-файлу сжатому gzip, в хвост пишутся заголовки - а не должны бы. Однако я пока так и не понял какими же проблемами это грозит клиентской программе?
Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #8 : 24 марта 2007, 20:39:41 »

Та же проблема с Windows Update и с базами антивирусов.
Суть в том, что не хочется повторно скачивать после переустановки системы или при обслуживании нескольких компьютеров.

HC пока не умеет сохранять данные с Partial Content. Но это уже другая тема.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #9 : 25 марта 2007, 03:11:02 »

Всем файлам, имеющим в заголовке Content-Encoding: ..., НС в конец дописывает в конец строки из заголовка. Это нужно чтобы при выдаче файла из кэша эти строки можно было восстановить, иначе клиент не сможет правильно интерпретировать полученные данные. Значит твои .gz файлы идут с 'Content-Encoding: ...' в заголовке.
Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #10 : 25 марта 2007, 09:47:29 »

Почему-то этот тестовый файл в кэше сжат а в папке куда я его сохранил лежит текстовый файл с расширением .gz Видимо, браузер увидел заголовок Content-Encoding:gzip и сам распаковал.
Тогда, выходит, что HC сработал правильно. Если баг есть, то на сервере.

Но на будущее, хотелось бы, чтобы HC умел сам распаковывать GZip при сохранении в кэше.
Сообщить модератору   Записан
Marvel
Новичок
*

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

Сообщений: 4


« Ответ #11 : 26 марта 2007, 12:27:20 »

Всем файлам, имеющим в заголовке Content-Encoding: ..., НС в конец дописывает в конец строки из заголовка. Это нужно чтобы при выдаче файла из кэша эти строки можно было восстановить, иначе клиент не сможет правильно интерпретировать полученные данные. Значит твои .gz файлы идут с 'Content-Encoding: ...' в заголовке.
Ясно, значит кэш на диске лучше не использовать напрямую. Хотело бы чтобы можно было. В идеале - отдельный кэш служебной информации, заголовков, etc.
Сообщить модератору   Записан
Shasoft2
Новичок
*

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

Сообщений: 17


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

1. Если в HC пришла сжатая страница, то он отдает её браузеру сжатой?
2. Как HC обращается с локальными адресами? Их тоже кэширует?
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #13 : 06 апреля 2007, 09:33:41 »

1. Да. И в кэше страница так же хранится в сжатом виде.
2. НС кэширует все, что указано правилами списка "Запись в кэш". Если браузер бездумно настроен на использование прокси для локальных адресов - значит этот трафик пойдет через НС, значит будет проверен список "З", значит возможно (смотря какие правила) будет кэшировать.
Сообщить модератору   Записан
Shasoft2
Новичок
*

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

Сообщений: 17


« Ответ #14 : 06 апреля 2007, 09:46:50 »

2. Просто в какой-то прокси видел такой параметр "Не кэшировать локальные адреса".  К примеру у нас локальная сеть и есть http сервер. Не хотелось бы, чтобы его кэшировали.
Может можно сделать настройку: "Не кэшировать локальные адреса"?

3. Наткнулся на неприятную особенность при настройке webwraper. Запашивается файл moon.gif и запрос перенаправляется на webwraper. Тот, в свою очередь, возвращает код 302, так как такой файл он сжать не может. После этого опять срабатывает правило перенаправления на сервер webwraper и так в цикле до бесконечности.
Правило у меня на gif настроено, чтобы не перенаправляло, но главное, что в любом случае возможна ситуация, когда в правиле может быть не указан файл, который НЕ надо сжимать и тогда то зацикливание и получается.

4. Если в серверах посредниках указать файл без пути, то он будет искаться в директории HC?

213.234.30.210
Сообщить модератору   Записан
Rick
Администратор
*****

Репутация: +15/-1
Offline Offline

Сообщений: 868


WWW
« Ответ #15 : 06 апреля 2007, 10:02:51 »

2. Просто в какой-то прокси видел такой параметр "Не кэшировать локальные адреса".  К примеру у нас локальная сеть и есть http сервер. Не хотелось бы, чтобы его кэшировали.
Может можно сделать настройку: "Не кэшировать локальные адреса"?
Сделать можно. Но поскольку это будет дублированием функции, имеющейся в каждом браузере "не использовать прокси для локальных адресов", приоритет этой фичи крайне мал.

Цитировать
3. Наткнулся на неприятную особенность при настройке webwraper. Запашивается файл moon.gif и запрос перенаправляется на webwraper. Тот, в свою очередь, возвращает код 302, так как такой файл он сжать не может. После этого опять срабатывает правило перенаправления на сервер webwraper и так в цикле до бесконечности.
Правило у меня на gif настроено, чтобы не перенаправляло, но главное, что в любом случае возможна ситуация, когда в правиле может быть не указан файл, который НЕ надо сжимать и тогда то зацикливание и получается.
Сорри, я не пользуюсь никакими "сжималками", тонкостей не знаю. Но, насколько я помню, во-первых, некоторые "сжималки" работают и с графикой (пережимают с потерей качества), и, во-вторых, в списках есть графа "Исключение", а в списке "Серверы-посредники" в условиях можно задать что же именно сжимать.

Цитировать
213.234.30.210
В чем прикол?
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #16 : 06 апреля 2007, 11:59:08 »

Про WebWarper продолжаем в его теме...
Сообщить модератору   Записан
MrFree
Новичок
*

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

Сообщений: 1


« Ответ #17 : 10 апреля 2007, 01:40:23 »

У меня такой вопрос:
Можно ли в качестве варианта решения данной проблемы ввести ОПЦИЮ, и хранить эту информацию в потоках NTFS?
Сообщить модератору   Записан
Кирилл
Beta tester
*****

Репутация: +5/-1
Offline Offline

Сообщений: 124


« Ответ #18 : 09 июня 2007, 11:58:14 »

MrFree
Нельзя. Кеш не обязательно расположен на диске с NTFS
Сообщить модератору   Записан
jjkl
Новичок
*

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

Сообщений: 13


« Ответ #19 : 20 января 2008, 18:01:51 »

Пользуюсь Handycache давно, программа отличная, только недавно обнаружил одну проблему, которая очень снижает ценность Handycache.
Работаю в Opera через Proxomitron <- Handycache <- Webwarper - только в этом случае достигается максимальная экономия траффика - Proxomitron режет всю рекламу, а Webwarper сжимает оставшееся в несколько раз.
Соответственно все странички, загруженные через Webwarper, остаются в кеше Handycache - причем в сжатом виде например сжатая gzip-ом страница вида: http://webwarper.net/ww/~av/celler.ru/forum/sell/topic-138975.html. При этом хотя у страницы расширение .html, на самом деле это gzip-архив, который можно просмотреть только переименовав расширение в .gzip.
И вот пытаюсь открыть эту сохраненную в Handycache страницу в автономном режиме, однако Opera теперь уже "не понимает" что это страница сжата .gzip, выдает крякозябры вместо странички, Handycache выдает ошибку 503.
Как научить Opera грузить сжатые .gzip и сохраненные Handycache странички в автономном режиме?
Причем в своем собственном кеше Opera сохраняет Webwarper-ские странички уже в расжатом виде и проблем с их загрузкой в автономном режиме не возникает. Но получается в этом случае нужно держать на диске 2 кеша с одинаковым содержимым (Operы и Webwarperа), что нерационально. да и вообще  получается кеш Handycache не нужен.
И еще недостаток - по таким сжатым gzip .html страничкам невозможно провести поиск контекста - т.к. расширение не gzip, а html, то поисковые программы не понимают их и не могут найти информации в них...

Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #20 : 20 января 2008, 18:39:31 »

Как научить Opera грузить сжатые .gzip и сохраненные Handycache странички в автономном режиме?

Опера умеет понимать GZIP ! Если у тебя не понимает, то возможно дело в неверной версии протокола! Ты читал ФАК ?

Цитировать
Причем в своем собственном кеше Opera сохраняет Webwarper-ские странички уже в расжатом виде

Конечно, их разжимает Проксомитрон перед отдачей Опере!
Кстати, может лучше в твоей связке поменять HC и Проксомитрон местами, как у большинства пользователей такой связки?! Тогда в кэше HC и Оперы будут одинаковые файлы.
И еще, если ты считаешь, что кэш Оперы по функциональности сможет заменить HC, то ты ошибаешься! Это уже обсуждалось здесь...

Цитировать
И еще недостаток - по таким сжатым gzip .html страничкам невозможно провести поиск контекста - т.к. расширение не gzip, а html, то поисковые программы не понимают их и не могут найти информации в них...

Это неверно! Есть поисковые программы, которые ищут внутри GZIP независимо от расширения файлов! Например, Архивариус...
Сообщить модератору   Записан
jjkl
Новичок
*

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

Сообщений: 13


« Ответ #21 : 21 января 2008, 12:56:01 »

"Ты читал ФАК ?"
- Да читал, и не один раз. HTTP 1.1. для прокси включено.

"Кстати, может лучше в твоей связке поменять HC и Проксомитрон местами, как у большинства пользователей такой связки?! "
-ДА ПОМЕНЯЛ! Handycache стал сохранять странички в расжатом  виде!
НО! Прикол остался! Опера не хочет грузить странички из кеша Handycache.
Причем если зайти в каталог Handycache, найти эту сохраненную страничку и вручную открыть ее то она загрузится! А через Handycache не хочет!

вот что пишет:
21.01.2008/15:28:09 local/127.0.0.1 http://webwarper.net/ww/~av/celler.ru/forum/sell/topic-139005.html 0 0/105 0 0 "503 Service Unavailable (HC)" Offline

вместе с проксомитроном:

21.01.2008/15:19:43 local/127.0.0.1 http://webwarper.net/ww/~av/celler.ru/forum/sell/topic-139005.html 0 657/75 0 729 "400 Host Not Found" Offline

КАК РЕШИТЬ ПРОБЛЕМУ!? Второй день мозг ломаю, если не ответите, придется расстаться с этой прогой....

И еще! Опера лезет в интернет в автономном режиме! ФАК и форум прочел! в настройках "Чтение из кеш" включено, "Только для GET" выключено.

""недостаток - по таким сжатым gzip .html страничкам невозможно провести поиск контекста - т.к. расширение не gzip, а html, то поисковые программы не понимают их и не могут найти информации в них...""
"Это неверно! Есть поисковые программы, которые ищут внутри GZIP независимо от расширения файлов! Например, Архивариус..."

- По моему Handycache должен быть совместимым с операционной системой, а не операционная система должна приспосабливаться к Handycache - если в винде файл с расширением  .html - это .html, а не gzip, то и Handycache должен сохранять в своем кеше страницы уже в расжатом виде!
Не хвост должен вилять собакой, а собака хвостом!


Добавлено: 21 Января 2008, 12:05:36

Опера 9.0.
Handycache самый последний щас скачал и установил.

Добавлено: 21 Января 2008, 12:13:37

Ну вроде нашел - "Списки/Не обновлять" - поставить галку в правиле " .* " - типа не обновлять всё - стало читаться из кеша!
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #22 : 21 января 2008, 13:07:57 »

вот что пишет:
21.01.2008/15:28:09 local/127.0.0.1 http://webwarper.net/ww/~av/celler.ru/forum/sell/topic-139005.html 0 0/105 0 0 "503 Service Unavailable (HC)" Offline

Хм, похоже не работает у тебя автономный режим, хотя вроде бы и включен...
Возникла одна догадка. Покажи-ка свой файл onlyfromcache.lst из папки HC и скрин-шот вкладки "Только из кэша"...


Цитировать
Второй день мозг ломаю, если не ответите, придется расстаться с этой прогой...

Ты нам угрожаешь?  Шокирован

Цитировать
- По моему Handycache должен быть совместимым с операционной системой, а не операционная система должна приспосабливаться к Handycache - если в винде файл с расширением  .html - это .html, а не gzip, то и Handycache должен сохранять в своем кеше страницы уже в расжатом виде!

HC сохраняет файлы в том виде, как они пришли! Имя файла берется из URL ! Это вовсе не означает, что расширение файла в кэше HC будет всегда соответствовать зарегистрированному в системе формату! Например, даже если картинка придет с расширением .html, то именно с таким расширением она и будет сохранена в кэш! Это пока единственный способ для HC сохранить возможность найти потом этот файл в своем кэше!
Никакой проблемы с расширением не возникнет, если открывать такие файлы не через менеджер файлов, а в браузере через HC - тогда HC сам сообщит браузеру, в каком формате он отдает файл из своего кэша!

P.S. Про опциональную распаковку GZIP перед записью в кэш речь уже как-то шла... Для этих целей сейчас можно использовать Проксомитрон. Лично мне эта возможность не нужна, т.к. увеличивает размер файлов в кэше!

Добавлено: 21 Января 2008, 14:02:46

Ну вроде нашел - "Списки/Не обновлять" - поставить галку в правиле " .* " - типа не обновлять всё - стало читаться из кеша!

Хвост виляет собакой! Это правило для других целей и имеет маленький критерий свежести!
В общем, это плохое решение твоей проблемы с автономным режимом!
Сообщить модератору   Записан
jjkl
Новичок
*

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

Сообщений: 13


« Ответ #23 : 21 января 2008, 14:03:53 »

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

 onlyfromcache.lst - вроде ничего там особо не менял:

HandyCache_list_Format_1
True#~#\.swf(\?|$)#~##~##~#0
True#~#\.(ico|jpe?g|png|gif|bmp)(\?|$)#~##~##~#1096
False#~#/image.php\?#~##~##~#0
True#~#.*#~##~#http://webwarper.net/wwgz/serv/adremover/adfree/#~#0  ;- пытался убить рекламу в Webwarper -е, но проксомитрон делает это лучше Улыбка
False#~#.*#~##~#http://webwarper.net/ww/~WWServiceScriptGZ~s/#~#0  ;- то же
False#~#/wwserv.js#~##~##~#16
False#~#/checkregistered.htm#~##~##~#13

вроде все видно на скриншоте будет тоже самое..

файл noreg.lst:

HandyCache_list_Format_3
True#~#\.(js|css)(\?|$)#~##~##~##~#1633
True#~#\.(jpg|jpeg|png|gif|bmp|swf|ico)(\?|$)#~##~##~##~#2836
True#~#.*#~#posting#~##~#0:15#~#0
False#~#/wwserv.js#~##~##~#360:00#~#4
True#~#/checkregistered.htm#~##~##~##~#2

-вот здесь была загвозда - включил третье правило - стало грузится из кеша, 15мин можно убрать вообще.
Добавлено: 21 Января 2008, 13:37:49

скришот - только из кеш
Добавлено: 21 Января 2008, 14:00:15

скриншот - "не обновлять


* 20001.jpg (29.11 Кб, 1280x345 - просмотрено 207 раз.)

* 20002.jpg (27.61 Кб, 1280x332 - просмотрено 195 раз.)
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #24 : 21 января 2008, 14:15:12 »

True#~#.*#~##~#http://webwarper.net/wwgz/serv/adremover/adfree/#~#0  ;- пытался убить рекламу в Webwarper -е, но проксомитрон делает это лучше
False#~#.*#~##~#http://webwarper.net/ww/~WWServiceScriptGZ~s/#~#0  ;- то же

Вот этой ошибкой ты отменил автономный режим для абсолютно ВСЕХ сайтов! Видимо, плохо ты "не один раз" читал ФАК!
Очисть поле "Сайт" в этих правилах!

Цитировать
вроде все видно на скриншоте будет тоже самое..

На скрин-шоте меня интересовали не правила, а галки, которые ты там поставил! В частности, состояние галки "Отменить для Оперы"...

Цитировать
-вот здесь была загвозда - включил третье правило - стало грузится из кеша, 15мин можно убрать вообще.

У-гу, и потом грузить все старые страницы всегда из кэша! А как ты вообще смотришь форум с таким правилом? Не мешает смотреть свежие посты?...


P.S. Ты оригинально решаешь проблемы, которые сам себе создаешь! Может, стоит внимательнее читать форум и прислушиваться к советам...
« Последнее редактирование: 21 января 2008, 14:28:07 от DenZzz » Сообщить модератору   Записан
jjkl
Новичок
*

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

Сообщений: 13


« Ответ #25 : 22 января 2008, 20:12:00 »

"Очисть поле "Сайт" в этих правилах!"
ОЧИСТИЛ! Заработал автономный! только не нашел в факе из за чего это было

В инернет в автономном опера лезть перестала!
Только вот что-то по моему со своим кешем опера работает намного быстрее чем с кешем НС - особенно когда загружаешь сохраненную сессию с большим количеством окон..
А работаю я в основном через сессии.. открываю каждый день сохраненную сессию с набором нужных мне сайтов, обновление информации на которых я проверяю еждневно..
Так что с кешем оперы я не расстаюсь, да...
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #26 : 22 января 2008, 20:31:33 »

Заработал автономный! только не нашел в факе из за чего это было

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

Цитировать
Только вот что-то по моему со своим кешем опера работает намного быстрее чем с кешем НС - особенно когда загружаешь сохраненную сессию с большим количеством окон..

HTTP-протокол медленнее собственного кэша браузера. Это давно описано в ФАКе:
"Нужен ли собственный кэш в браузере или теперь его можно отключить?"
Зато Опера тормозит на старте из-за большого собственного кэша!
Сообщить модератору   Записан
arsvrn
Новичок
*

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

Сообщений: 4


« Ответ #27 : 30 января 2008, 23:34:11 »

Прошу прощения, если подобный вопрос уже был...
Очень давно, еще с первых версий НС использую связку Opera - НС - Proxomitron - сеть. До последнего времени использовал версию НС 0.95b3b1. Вполне устраивала, а переходить на новый формат кеша (с использованием MD5, насколько я помню по ru-board) мне не хотелось. Решил вот поставить v1.00RC1 (понадобились условные прокси) и столкнулся с такой проблемой.
Поскольку Proxomitron расгзиповывает страницы, то периодически для уменьшения размера кеша я их сжимал в GZIP. Старая версия НС прекрасно их понимала в автономном режиме. А новая не хочет! Причем, если в кеш пишется гзипованная страница (мимо Проксомитрона), то потом НС ее понимает. А сжатую сторонним архиватором похоже не может распаковывать и, судя по логу, отдает браузеру без заголовков "Content-Encoding" и "Content-Type". В результате браузер не понимает, что это и предлагает сохранить (кстати, IE себя ведет аналогично).
Что можно сделать? Если перепаковать, то как? На старую версию уже не хочется откатываться...
PS: файрвола нет, других прокси тоже нет.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #28 : 31 января 2008, 01:27:10 »

Привет, arsvrn, помню тебя. Ты один из первых, кто проявил интерес к НС в самом начале его публичной жизни.
О твоей проблеме. НС в файлы gzip в кэше в конец дописывает строки из заголовка вроде этого
Цитировать
Content-Type: text/html; charset=windows-1251-Content-Encoding: gzip
При выдаче из кэша эти строки помещаются в заголовок ответа.
Кроме этого признаком зипованных файлов в кэше служит аттрибут файла системный.
Поэтому вручную сделать ничего нельзя.
В принципе я могу сделать, чтобы в заголовки файлов с аттрибутом системный добавлялась строка Content-Encoding: gzip и будет как раньше. Но обращаю твое внимание, что в таком случае могут быть проблемы с кодировкой у браузера. 
Сообщить модератору   Записан
arsvrn
Новичок
*

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

Сообщений: 4


« Ответ #29 : 31 января 2008, 12:41:11 »

Привет, mai62! Приятно удивлен, не ожидал, что помнишь меня. Столько времени уже прошло, как я в ветке про НС появлялся.
Спасибо за разъяснение - разобрался. Уже попробовал ручками, получается подправить старые файлы. В принципе, теперь я и сам смогу конвертнуть свой кеш в современный формат. Напишу программку, которая добавляет данные в конец файла и меняет атрибуты.
Но не вредно было бы, на мой взгляд, сделать (опционально) и возможность брать GZIP'ы с добавлением заголовков. А указать ручками кодировку в браузере не так уж трудно.

PS: раз уж впомнили старые времена Улыбка . Я о той фиче с двумя наборами каталога кеша, которую я когда-то предложил. Может это никому, кроме меня, и не нужно, но хотелось бы сделать их неравноправными. Что-то вроде того, что когда выбран второй набор, то данные пишутся и в каталог первого и второго кеша. Если помнишь, это было сделано для быстрого переключения между локальным и сетевывым кешем. Так вот, хорошо бы при выборе сетевого данные дублировать и в локальном. Чтобы при отключенной сети они были доступны в локальном.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #30 : 31 января 2008, 14:17:31 »

Цитировать
Но не вредно было бы, на мой взгляд, сделать (опционально) и возможность брать GZIP'ы с добавлением заголовков. А указать ручками кодировку в браузере не так уж трудно.
Долгое время так и было, НС понимал оба формата. А потом я решил, что старого формата уже ни у кого нет, и убрал его. Оказывается поспешил, верну взад.
Цитировать
теперь я и сам смогу конвертнуть свой кеш в современный формат
Чтобы ты не разгадывал ребусы, у меня это сделано так
Цитировать
    n:= 0;
    sd:= '';
    if (Encoding<>'') and (FileStream.Size>0) then
    begin
      if Content_Type<>'' then
      begin
        s:= 'Content-Type: '+Content_Type;
        l:= Length(s);
        sd:= sd+s;
        sd:= sd+char(l);
        Inc(n);
      end;
      s:= 'Content-Encoding: '+Encoding;
      l:= Length(s);
      sd:= sd+s;
      sd:= sd+char(l);
      Inc(n);
      sd:= sd+char(n);
      sd:= sd+char(0);
    end;
    if n>0 then
    begin
      FileStream.write(sd[1], Length(sd));
      SetFileAttributes(PChar(FileName), faSysFile);
    end;
Цитировать
хорошо бы при выборе сетевого данные дублировать и в локальном. Чтобы при отключенной сети они были доступны в локальном.
Давай сделаю опцию "Сохранять файлы в папки обоих наборов". При закрытии файла в основном наборе буду копировать файл во второй набор.
Сообщить модератору   Записан
arsvrn
Новичок
*

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

Сообщений: 4


« Ответ #31 : 31 января 2008, 15:02:53 »

mai62
Цитировать
Долгое время так и было, НС понимал оба формата. А потом я решил, что старого формата уже ни у кого нет, и убрал его. Оказывается поспешил, верну взад
Хорошо бы...
Цитировать
Чтобы ты не разгадывал ребусы, у меня это сделано так
Спасибо, понял.
Цитировать
Давай сделаю опцию "Сохранять файлы в папки обоих наборов". При закрытии файла в основном наборе буду копировать файл во второй набор
Отлично, это вполне подойдет Улыбка .
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #32 : 31 января 2008, 18:37:07 »

Хорошо, сделаю.
Сообщить модератору   Записан
arsvrn
Новичок
*

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

Сообщений: 4


« Ответ #33 : 31 января 2008, 22:09:21 »

Спасибо!
Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #34 : 01 февраля 2008, 13:19:39 »

mai62 Я что то не понял. Ты же уже соглашался сделать распознавание gzip только по сигнатуре? Зачем аттрибут системный сейчас ставить? И Content-Encoding: gzip в конце совершенно лишнее.
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #35 : 01 февраля 2008, 15:01:24 »

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

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

Сообщений: 46


« Ответ #36 : 24 апреля 2009, 12:49:40 »

Каким архиватором надо запаковывать страницы в gzip формат, чтобы HC и браузер понимали эти страницы, пробывал линуксовский gzip и 7z. Но браузер показывает крякозябры и HC в мониторе не пишет "gzip". Страницы из кеша которые были изначально загзипованные сервером нормально распознаются
Сообщить модератору   Записан
Enver
Новичок
*

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

Сообщений: 46


« Ответ #37 : 27 апреля 2009, 09:00:28 »

DenZzz, зачем ты это сюда перенёс, я про локальное хранение кеша вообще то Улыбка
Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #38 : 30 апреля 2009, 18:22:24 »

Возможно надо паковать с ключем --no-name. Т.к. внутри архива должен быть не файл а просто сжатые данные.
Сообщить модератору   Записан
Enver
Новичок
*

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

Сообщений: 46


« Ответ #39 : 30 апреля 2009, 21:02:42 »

Нет, это не помогает
Сообщить модератору   Записан
Сергей
Beta tester
*****

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

Сообщений: 621



« Ответ #40 : 01 мая 2009, 00:46:22 »

Сейчас посмотрел - у файлов созданных утилитой gzip, заголовок другой.
И еще, насколько я помню, HC распознает gzip по атрибуту системный и дописанной в конце файла строчке content-encoding. А заголовок проверяет в крайнем случае.
Сообщить модератору   Записан
Enver
Новичок
*

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

Сообщений: 46


« Ответ #41 : 01 мая 2009, 08:36:50 »

Ну аттрибут системный я ставил. Так значит самому создать gzip страницы нельзя?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #42 : 01 мая 2009, 13:50:16 »

НС делает gzip  с помощью библиотеки zlib.
Сообщить модератору   Записан
DenZzz
Модератор
*****

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

Сообщений: 5589



« Ответ #43 : 01 мая 2009, 14:08:34 »

DenZzz, зачем ты это сюда перенёс, я про локальное хранение кеша вообще то

И я про него! Выше описано, как HC сохраняет GZIP в кэш, и описан формат сжатых файлов.

Так значит самому создать gzip страницы нельзя?

Можно. Если знаешь языки программирования, то сможешь написать свою утилиту. Вот тебе готовый кусок кода.
Сообщить модератору   Записан
Enver
Новичок
*

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

Сообщений: 46


« Ответ #44 : 02 мая 2009, 00:22:04 »

Чего не знаю того не знаю Грустный
Сообщить модератору   Записан
HKLM
Старожил
****

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

Сообщений: 305


« Ответ #45 : 26 октября 2009, 18:40:14 »

Снял у всех файлов в кэше, атрибут системный. А теперь не знаю как найти все файлы чтобы вернуть атрибут.
Если искать
Код:
Content-Type: application/octet-stream&Content-Encoding: none
то я боюсь лишнего найдет.
Может надо по HEX коду искать?
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #46 : 26 октября 2009, 18:54:54 »

gzip-файлы (не знаю все ли) начинаются с шестнадцатеричных 1F 8B 08. Ну и в качестве дополнительной проверки в конце файла должно быть gzip или deflate.
Сообщить модератору   Записан
HKLM
Старожил
****

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

Сообщений: 305


« Ответ #47 : 26 октября 2009, 23:48:01 »

Спасибо, вернул атрибуты системный на место. Похоже что для hcHistorian это важно. После обновления его базы добавилось около 800 записей.
В конце файлов 677A6970160200 (gzip...)
Сообщить модератору   Записан
Дем
Постоялец
***

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

Сообщений: 167



« Ответ #48 : 06 августа 2015, 07:49:42 »

Возвращаясь к вопросу.
Пробую использовать под убунтой - и естественно никаких атрибутов у файлов тут нет.
Соответственно и Content-Encoding: gzip в ответ не попадает.

Вот как бы вопрос решить?
Надо как-то принудительно включить анализ сигнатуры заголовка для всего что с диска читается...
Сообщить модератору   Записан
mai62
Автор HC
*****

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

Сообщений: 6383


« Ответ #49 : 07 августа 2015, 11:53:51 »

Возможно Вам поможет опция Кэш\Управление\Добавлять #.gz к именам gzip файлов.
Сообщить модератору   Записан
Страниц: 1 2 3 [Все]   Вверх
  Отправить эту тему    Печать  

 
Перейти в: