Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > Как прочитать ответ сервера (gzip )


Автор: zhz 20.8.2009, 03:10
Доброго времени суток. 
У меня проблема следующего характера. 
Имеется файл, содержащий ответ web-сервера, начинается заголовками (часть заголовков опущена за ненадобностью)
HTTP /1.1 200 OK
Content-Type: text\html; charset=windows-1251;
Connection: close;
Content-Encoding: gzip
Cache-Control: no-cache, no-store, must-revalidate;
Pragma: no-cache;
Vary: Accept-Encoding;
Content-Length: xxxxx

Далее идет сжатый контент, ввиде различный квакозябр.
Каким образом можно этот самый контент прочитать??
Я так предполагаю , надо создать web сервер, там cgi скрипт (perl) который будет этот самый файл открывать, видирать квакозябры и отправлять клиенту с подобными заголовками.

Автор: Nigel 20.8.2009, 10:02
Каким образом был получен данный файл и почему там квакозябры?
Если проблема с написанием скрипта perl, то вы ошиблись разделом. Попросите перенести топик в соответсвующий форум.

Автор: zhz 21.8.2009, 01:34
Я не прошу конкретного примера на Perl. Мне надо просто алгоритм решения проблемы. 
Каким образом он получен я не знаю. Просто посмотрев на файл я понял что это ответ сервера. Есть заголовки(привел выше), и есть тело (квакозябры), тело как я понимаю как раз и сжато gzip ом

Автор: Ams 21.8.2009, 04:03
Наверное это надо:
1. получаете файл, 
2. отделяете заголовок от тела (каким образом отделяется заголовок от тела можно почитать в RFC, это "\r\n\r\n"),
3. далее тело уже разжимаете доступными способами конкретного языка.

Автор: Nigel 21.8.2009, 09:16
Ну и чего вы собственно ожидаете услышать, если вы даже не в состоянии определить в чем конкретно у вас проблема. Телепатов тут нет.
Вы считаете нормальным просить алгоритм, который будет делать неизвестно что с неизвестно каким файлом, который был получен неизвестно как?!

Автор: zhz 24.8.2009, 01:56
По моему я объяснил все доступно. Что есть и что нужно,  изложил. Никаких телепатических способностей тут не нужно. Так что флейм не надо разводить. Если кому то не понятно, то повторю:
Есть ответ веб сервера, состоит из заголовков и тела. Среди заголовков есть один - Content-Encoding: gzip, который говорит о том что ТЕЛО СЖАТО GZip ом. Задача в том чтобы увидеть тело в нормальном виде! вот и все. я пытаюсь решить таким способом:
1) поднял apache с perl. 
2)написал скрипт следующего содержания
use Compress::Zlib;
undef $/;
open(FILE, "<", zippedpage);
$page=<FILE>;
close(FILE);
print "Content-Type: text\html;0.\n" ;
print "Content-Encoding: gzip\n\n";
print $page;

3) в каталог со скриптом закинул файл ziippedpage, который открыв блокнотом, просто удалил все заголовки, оставив только тело.

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

Если тема выходит за пределы данного раздела, и относится perl у , то просьба перенсти в соответствующий раздел 

Автор: Nigel 24.8.2009, 09:45
Ладно, спрошу по-другому. Какой сервер? Какой модуль сжатия используется?

Автор: zhz 24.8.2009, 23:51
В ответе, который мне необходимо gрасжать, есть заголовок, говорящий о том что сервер nginx, я пытаюсь все сделать на Apache под win 32.
Сжимаетсо gzip, это вроде как видно в заголовках которые я указал. Если вы про модуль какой я использую, то это как видно 
use Compress::Zlib;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)