Конвертер GZIP в Deflate

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

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

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

или вставьте Ctrl+V

Пока вы ждёте файлы, можно сыграть в Code Rain

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

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

ХарактеристикаGZIPDEFLATE
MIME-типapplication/gzipapplication/zlib
Типконтейнер потока DEFLATEСырой поток DEFLATE
СжатиеDEFLATE (RFC 1951)LZ77 + кодирование Хаффмана
Стандартная спецификация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 представляет собой битовый поток RFC 1951 без фиксированной сигнатуры, обрамляющего заголовка или завершающей части. MIME-тип application/zlib обозначает оболочку zlib формата RFC 1950 вокруг DEFLATE, а не поток сырого DEFLATE. При преобразовании GZIP в сырой DEFLATE удаляются метаданные GZIP и контрольная сумма, а сжатые данные сохраняются.

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

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

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

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

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

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

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

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

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