GZIP архив (.gz)
IETF СтандартGzip (GZ) е стандартната GNU помощна програма за компресиране и файлов формат, разпространена повсеместно в Unix операционните системи и интернет HTTP сървърите за бързо компресиране на файлове и уеб ресурси.
Конвертиране на TAR към GZ
Безплатен конвертор от TAR към GZ в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Инспектиране и метаданни
Операционните системи и файловите анализатори идентифицират GZ файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на хедъра (Magic Bytes)
Операционните системи и файловите анализатори идентифицират GZ файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 0):
1F 8B 08ASCII ПРЕДСТАВЯНЕ: ..\x08
Стандартизация: IETF RFC 1952
Технически спецификации
| Контейнерна архитектура | 10-byte header (magic 0x1F 0x8B, method 8, flags, mtime, OS) followed by DEFLATE stream and 8-byte footer |
| Компресия | DEFLATE algorithm (LZ77 sliding window + Huffman coding) |
| Поредност на байтовете (Endianness) | Little-Endian header and footer integers |
| Цветови пространства | N/A (Archive Container) |
| Канали и структура | Single-file compressed byte stream |
| Максимални размери | Uncompressed size recorded modulo 2^32 (supports unbounded stream lengths) |
| Прозрачност | 100% bit-exact lossless data preservation |
| Стрийминг и прогресивно зареждане | Sequential single-pass streaming playback over pipes and HTTP networks |
Техническа сравнителна матрица: GZ спрямо конкуренти
| Технически атрибут | GZ (Текущ) | BZ2 | BROTLI | ZSTD |
|---|---|---|---|---|
| Скорост на декомпресия | Бърза (~300 MB/s) | Бавна (~40 MB/s) | Много бърза (~400 MB/s) | Ултра бърза (>1.5 GB/s) |
| Универсално уеб приемане | 100% от всички браузъри и сървъри | Нулева поддръжка от уеб браузъри | Поддържа се през HTTPS във всички браузъри | Нарастваща поддръжка в браузъри и сървъри |
| Пакетиране на множество файлове | Изисква TAR контейнер (.tar.gz) | Изисква TAR контейнер (.tar.bz2) | Суров поток или персонализиран контейнер | Изисква TAR контейнер (.tar.zst) |
| Проверка на контролна сума | 32-битов CRC (CRC-32) | 32-битов CRC на блок | Няма вградена в потока | 64-битов xxHash |
Често срещани режими на повреда и ръководство за хекс възстановяване
Грешка при извличане: 'gzip: stdin: unexpected end of file'.
Първопричина: Преждевременно прекратяване на прехвърлянето на файла, прекъсващо DEFLATE потока или 8-байтовия CRC32 долен колонтитул.
Възстановяване: Извлечете частични съдържания с помощта на 'gzip -d --keep broken.gz' или File2File Gzip Extractor.
Анализ на сигурността и вектори на атака към парсера
Анализаторите на Gzip обработват контролирани от потребителя заглавия и DEFLATE битови потоци, които трябва да бъдат защитени срещу декомпресионни бомби.
Известни вектори на атака
- Декомпресионна бомба (zip бомба), разширяваща мегабайти Gzip данни в стотици гигабайти дисково пространство.
- Препълване на буфера при четене на опционалния низ с оригиналното име на файла от заглавието.
- Целочислено препълване по време на сравнението на 32-битовата CRC проверка.
Защитни добри практики:
Исторически произход и етапи
Основни предимства и плюсове
- Универсалният еталон за интернет HTTP компресия ('Content-Encoding: gzip'), поддържан от 100% от уеб клиентите.
- Запазва оригиналните времеви щампи за модификация на файла и опционални оригинални имена на файлове вътре в 10-байтовото заглавие.
- Лек отпечатък върху процесора по време на декомпресия, работещ гладко на мобилни устройства и рутери с ниска мощност.
Технически ограничения и минуси
- Компресиране само на един файл: не може да компресира множество файлове или директории, без те първо да бъдат обединени в TAR контейнер.
- Коефициентът на компресия е по-нисък от съвременните алгоритми като Brotli и Zstandard при модерен уеб текст.
- Полето за размера на некомпресираните данни в долния колонтитул е 32-битово модуло 2^32, което води до грешки при превъртане на дисплея за файлове, по-големи от 4 GB.
Интересни технически факти
- Магическите байтове 0x1F 0x8B са избрани, защото исторически 0x1F е бил първият байт на Unix файловете 'compress', докато 0x8B идентифицира Gzip.
- Над 80% от всички уебсайтове в интернет използват Gzip компресия за доставяне на уеб страници до браузърите.
- Жан-Луп Гайли написва кода за компресиране, докато Марк Адлер написва кода за декомпресиране (inflate); и двамата получават наградата за софтуерни системи на ACM.
Често задавани технически въпроси
Защо не мога да компресирам цяла папка с Gzip?
Gzip е проектиран да компресира един единствен поток от байтове. За да компресират папка, системите Unix първо обединяват папката в един .tar файл, след което я компресират с Gzip, за да създадат .tar.gz файл.
Каква е разликата между .gz и .zip?
.zip е архивен формат, който опакова множество файлове заедно с индекс на директорията. .gz компресира само един единствен файл и обикновено се комбинира с tar на Unix системите.
Как мога да декомпресирам .gz файл на Windows или Mac?
Използвайте File2File.app за незабавно декомпресиране на .gz файлове директно във вашия уеб браузър без инсталиране на софтуер.
Свързани двойки за конвертиране на GZ
Конвертирането на TAR архив в GZIP архив обвива некомпресирана колекция от файлове в един единствен компресиран поток, използвайки алгоритъма без загуба на данни DEFLATE за драстично намаляване на файловия размер.
Конвертирането на компресиран GZIP файл в TAR архив премахва слоя на компресия, за да разкрие суровата, некомпресирана колекция от файлове и папки.