Конвертер потоков GZIP в чистый DEFLATE

Преобразование потока GZIP в чистый формат DEFLATE удаляет внешнюю оболочку файла и метаданные заголовка, оставляя только сжатые полезные данные для специализированных сетевых протоколов и низкоуровневых архивов.

Выберите или перетащите файлы

Выберите или перетащите файлы сюда

100% конфиденциальное преобразование в браузере - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполняется локально в песочнице вашего браузера.

Сравнение форматов и технические характеристики

ХарактеристикаGZIPDEFLATE
MIME-типapplication/gzipapplication/zlib
ТипDEFLATE stream containerraw DEFLATE stream
СжатиеDEFLATE (RFC 1951)LZ77 + Huffman coding
Стандартная спецификацияIETF RFC 1952IETF RFC 1950 / RFC 1951
Сигнатура файла (Magic Bytes)1F 8B (gzip ID1/ID2)78 01 / 78 9C / 78 DA (zlib header bytes)

Обзор формата и применение

Преобразование потока GZIP в чистый DEFLATE часто происходит при веб-разработке, сетевом программировании и низкоуровневых рабочих процессах хранения данных. Разработчики часто имеют дело с GZIP при сохранении отдельных файлов на диск, так как этот формат включает полезные метаданные, такие как исходные имена файлов и временные метки изменения. Однако современные протоколы сжатия HTTP и конкретные двоичные форматы ожидают только сжатые полезные данные без каких-либо байтов-оболочек. Выполнение этого преобразования позволяет инженерам передавать стандартные сжатые данные напрямую в сетевые потоки или пользовательские парсеры. Например, создание пользовательского обработчика HTTP-ответов или работа с архивами ZIP часто требуют удаления заголовка GZIP и нижнего колонтитула CRC32 для выделения чистого вывода алгоритма. Удаление этих дополнительных данных контейнера снижает накладные расходы, когда каждый отдельный байт имеет значение в условиях ограниченной среды программирования.

Технические спецификации и разбор кодеков

Поток GZIP, определяемый типом MIME application/gzip, использует структуру контейнера, определенную в RFC 1952. Он начинается с двухбайтового заголовка магического числа (0x1F, 0x8B), за которым следуют флаги сжатия, время изменения, идентификатор операционной системы и необязательное имя файла. Фактические сжатые данные находятся посередине, а файл заканчивается четырехбайтовой контрольной суммой CRC32 и четырехбайтовым индикатором несжатого размера. В отличие от него, чистый DEFLATE, определяемый как application/zlib или сырые потоки, опирается на RFC 1951. Он не содержит магических байтов, заголовков и нижних колонтитулов. Он использует алгоритм LZ77 в сочетании с кодированием Хаффмана для непосредственного хранения сжатых блоков. Преобразование между ними полностью без потерь, так как оба формата используют один и тот же механизм сжатия DEFLATE. Процесс преобразования заключается в распаковке контейнера GZIP, отбрасывании метаданных и извлечении внутреннего потока байтов DEFLATE.

Совместимость с ОС и браузерами

Чистые потоки DEFLATE работают нативно в современных операционных системах и веб-средах выполнения с помощью стандартных языков программирования, таких как Python, Node.js и C++. Браузеры обрабатывают DEFLATE нативно через стек заголовков кодирования содержимого HTTP. Операционные системы, такие как Windows, macOS и Linux, поддерживают чистые потоки через системные библиотеки сжатия, такие как zlib. Мобильные платформы, включая Android и iOS, предоставляют прямой доступ к API к процедурам DEFLATE для пользовательских уровней хранения приложений.

💡 Полезная информация

Всегда проверяйте, ожидает ли ваш целевой парсер чистый поток RFC 1951, а не поток, обернутый в zlib, поскольку zlib добавляет двухбайтовый заголовок, который парсеры чистого DEFLATE отвергнут.

Сравнение форматов и технические характеристики

Текстовый файл размером 10 мегабайт, сжатый в поток GZIP, уменьшается примерно до 2 мегабайт. Удаление заголовка и нижнего колонтитула для создания чистого файла DEFLATE дает идентичный полезный объем в 2 мегабайта. Передача этого 2-мегабайтного файла занимает около 0,04 секунды по оптоволоконному соединению 500 Мбит/с, примерно 0,4 секунды в стандартной сети 5G и около 4 секунд при перегруженном сотовом соединении 4G.

Часто задаваемые вопросы

Как конвертировать поток GZIP в чистый DEFLATE без потери качества?

Оба формата используют одинаковые алгоритмы сжатия без потерь. Их преобразование просто означает чтение контейнера GZIP, удаление десятибайтового заголовка и восьмибайтового нижнего колонтитула и сохранение внутренних сжатых блоков. Данные не теряются, так как лежащий в основе алгоритм остается неизменным.

В чем разница между потоком GZIP и чистым DEFLATE?

GZIP - это полный файловый контейнер, который включает заголовок с магическими байтами, исходные имена файлов, временные метки изменения и нижний колонтитул с контрольной суммой. Чистый DEFLATE - это просто сжатые данные без заголовков, нижних колонтитулов и метаданных файла.