распаковать сжатое HTTP-сообщение - PullRequest
0 голосов
/ 25 января 2010

Я анализирую захваты Pcap с помощью C, и мне нужно распаковать сжатое тело HTTP ответы. Я знаю, что могу сделать это вручную, используя Wireshark, но мне нужно будет сделать это на лету, внутри моей программы.

Насколько я понимаю, я должен изучить zlib и RFC. Но поскольку это небольшая аналитическая программа, знаете ли вы, где я могу найти быстрое решение?

Спасибо

Ответы [ 4 ]

0 голосов
/ 27 января 2010

Не проще ли запустить его, если прокси-сервер переписывает заголовок очистки Accept-Encoding в Accept-Encoding: compress; q = 0, gzip; q = 0

С

0 голосов
/ 25 января 2010

Вероятно, на каком бы языке вы ни создавали свою аналитическую программу, должна быть библиотека, уже готовая для использования для декодирования сжатых потоков gzip. Google или Bing для " вашего выбора языка gzip реализация" или чего-то подобного, и вы, вероятно, получите решение для вашей проблемы.

В крайнем случае, вы всегда можете заставить вашу программу использовать GNU gzip (должна быть сборка для вашей системы по выбору), передавая в нее данные и используя распакованный вывод gzip для работы .

0 голосов
/ 26 января 2010

Решено! Я нашел реализацию в gzip под названием minigzip. Это небольшая хорошая программа, которая делает свое дело, я буду использовать в качестве эталонной реализации.

0 голосов
/ 25 января 2010

Не похоже, что вам нужно будет читать какие-либо дополнительные RFC из того, что вы уже знаете. Вам не нужно понимать алгоритм сжатия, чтобы использовать его.

Использовать zlib довольно просто.
Вы можете сделать это дефляцией в нескольких строках кода: Вот пример .

...