Конвертор от Deflate към GZIP

Конвертирането на суров DEFLATE към поток GZIP обвива компресирания полезен товар в стандартен контейнер със заглавни метаданни, така че операционните системи и уеб инструментите да могат да го четат правилно.

Изберете или пуснете файлове тук

Поверително - файловете никога не напускат устройството ви

или поставете Ctrl+V

Докато чакаш файловете си, можеш да играеш Code Rain

Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

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

СпецификацияDEFLATEGZIP
MIME типapplication/zlibapplication/gzip
Типсуров DEFLATE потокконтейнер за DEFLATE поток
КомпресияLZ77 + Huffman кодиранеDEFLATE (RFC 1951)
Стандартна спецификацияIETF RFC 1950 / RFC 1951IETF RFC 1952
Заглавни байтове (Magic Bytes)78 01 / 78 9C / 78 DA (zlib header bytes)1F 8B (gzip ID1/ID2)

Преглед на формата и приложения

Суровите потоци данни DEFLATE съдържат компресирани байтове без никакви файлови заглавки или последващи контролни суми. Уеб браузърите и мрежовите инструменти често изпитват затруднения при обработката на тези „голи" потоци, защото им липсват метаданни като оригинални имена на файлове, времеви марки за модификация или идентификатори на операционната система. Обвиването на тези сурови данни в GZIP контейнер решава тези проблеми със съвместимостта. Разработчиците срещат сурови DEFLATE потоци в мрежови протоколи като HTTP компресия, части от PNG изображения и ZIP архиви. Когато тези потоци трябва да бъдат запазени като самостоятелни файлове за инструменти от командния ред или стандартни уеб изтегляния, инженерите ги конвертират в GZIP формат. Това гарантира, че помощните програми за декомпресия незабавно разпознават файловия тип и извличат съдържанието, без да връщат грешки.

Технически спецификации и анализ на кодеците

Суровият DEFLATE (RFC 1951 или суров поток) използва комбинация от съвпадение в плаващ речник LZ77 и Хъфман кодиране за компресиране на байтови последователности без никакви рамкови заглавки. GZIP контейнерът (application/gzip) взема този точно определен полезен товар DEFLATE и го обвива със стриктна 10-байтова заглавна част, съдържаща двубайтова сигнатура с магическо число (0x1F, 0x8B), флагове за метода на компресия, време на модификация и ID на операционната система. GZIP структурата добавя и 8-байтов трейлър, съдържащ CRC32 контролна сума за проверка на целостта на данните и размера на некомпресирания файл по модул 2 на 32-ра степен. MIME типът application/zlib обозначава zlib обвивка около DEFLATE по RFC 1950, а не суров поток DEFLATE.

Съвместимост с операционни системи и браузъри

GZIP потоците са универсално съвместими в съвременните операционни системи, включително Linux, macOS и Windows. Инструментите за команден ред като gzip, gunzip и 7-Zip четат нативно GZIP файлове. Уеб браузърите автоматично се справят с GZIP декомпресията при получаване на HTTP отговори от сървъри, въпреки че суровият DEFLATE често изисква персонализирана логика за парсиране в JavaScript среди или WebAssembly модули. Поддръжката зависи и от приложението, устройството, операционната система и версията ѝ.

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

Винаги проверявайте дали вашият инструмент за декомпресия чете правилно GZIP трейлъра, тъй като повредените CRC32 контролни суми в края ще накарат инструментите за извличане да прекратят работата си преждевременно, дори ако основният полезен товар DEFLATE е напълно здрав.

Често задавани въпроси

Как се конвертира суров DEFLATE в поток GZIP без загуба на данни?

И двата формата използват компресия без загуба на данни, базирана на абсолютно същия алгоритъм DEFLATE. Конвертирането между тях просто добавя заглавки на контейнера и контролни суми около съществуващите компресирани байтове, което означава, че по време на процеса на обвиване не настъпва никаква загуба на данни.

Каква е разликата между суров DEFLATE и GZIP поток?

Суровият DEFLATE съдържа само компресирания полезен товар без никакви идентифициращи заглавки или футери. GZIP потокът е стандартизиран файлов контейнер, който добавя 10-байтова заглавна част и 8-байтов завършващ трейлър с контролна сума към суровите DEFLATE данни за проследяване на метаданни и откриване на грешки.