GZIP архив (.gz)

IETF Стандарт

Gzip (GZ) е стандартната GNU помощна програма за компресиране и файлов формат, разпространен в операционните системи Unix и HTTP сървърите в интернет за бързо компресиране на файлове и уеб ресурси.

Конвертиране от TAR към GZ

Безплатен конвертор от TAR към GZ в браузъра. Конвертирайте файлове незабавно на вашето устройство.

Проверка и метаданни

Операционните системи и файловите анализатори идентифицират GZ файлове чрез проверка на началната двоична байтова последователност:

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

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

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

Байтов подпис на заглавката (сигнатурни байтове)

Операционните системи и файловите анализатори идентифицират GZ файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 0):

1F 8B 08

ASCII ПРЕДСТАВЯНЕ: ..\x08

Стандартизация: IETF RFC 1952

Технически спецификации

Контейнерна архитектура10-байтова заглавна част (магически байтове 0x1F 0x8B, метод 8, флагове, mtime, ОС), последвана от поток DEFLATE и 8-байтов долен колонтитул
КомпресияАлгоритъм DEFLATE (плъзгащ се прозорец LZ77 и кодиране на Хъфман)
Поредност на байтовете (Endianness)Целите числа в заглавката и крайния блок са в ред от младшия към старшия байт (Little-Endian).
Цветови пространстваНеприложимо (контейнер за архиви)
Канали и структураКомпресиран поток от байтове на един файл
Максимални размериНекомпресираният размер се записва по модул 2^32 (дължината на потока не е ограничена)
Прозрачност100% беззагубно възстановяване на данните до последния бит
Поточно предаване и прогресивно зарежданеПоследователно поточно предаване в един проход през канали и HTTP мрежи

Техническа сравнителна матрица: GZ спрямо конкуренти

Технически атрибутGZ (Текущ)BZ2BROTLIZSTD
Скорост на декомпресияБърза (~300 MB/s)Бавна (~40 MB/s)Много бърза (~400 MB/s)Ултра бърза (>1.5 GB/s)
Широко използване в уебаШирока поддръжка в браузърите и сървърите; кодирането на съдържанието се договаря за всяка заявкаНулева поддръжка от уеб браузъриПоддържа се от много браузъри чрез 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.app Gzip Extractor.

Анализ на сигурността и вектори на атака към парсера

Парсерите на Gzip обработват контролирани от потребителя заглавия и DEFLATE битови потоци, които трябва да бъдат защитени срещу декомпресионни бомби.

Известни вектори на атака

  • Декомпресионна бомба (zip бомба), разширяваща мегабайти Gzip данни в стотици гигабайти дисково пространство.
  • Препълване на буфера при четене на опционалния низ с оригиналното име на файла от заглавието.
  • Препълване на цяло число по време на сравнението на 32-битовата CRC проверка.

Най-добри практики за защита: Задайте строги квоти за декомпресия и ограничения на паметта в автоматизирани услуги за приемане на данни.

Исторически произход и етапи

1996IETF стандартизира спецификацията на файловия формат Gzip като RFC 1952.
1993Приет от проекта GNU за замяна на проприетарната Unix програма за компресиране 'compress' (.Z файлове).
1992Жан-Луп Гайли и Марк Адлер създават Gzip като инструмент за компресиране без патенти за движението за свободен софтуер.

Основни предимства

  • Широко поддържано HTTP кодиране на съдържание, но клиентите и сървърите може да договорят друго кодиране или да не използват компресия.
  • Запазва оригиналните времеви отметки за промяна на файла и опционални оригинални имена на файлове вътре в 10-байтовото заглавие.
  • Малко натоварване на процесора при декомпресия, което позволява безпроблемна работа на мобилни устройства и рутери с ниска мощност.

Технически ограничения и минуси

  • Компресиране само на един файл: не може да компресира множество файлове или директории, без те първо да бъдат обединени в TAR контейнер.
  • Коефициентът на компресия е по-нисък от този на съвременните алгоритми като Brotli и Zstandard при модерен уеб текст.
  • Полето в края на файла за размера на некомпресираните данни е 32-битово и показва размера по модул 2^32, което води до грешки при показване за файлове, по-големи от 4 GB.

Интересни технически факти

  • Магическите байтове 0x1F 0x8B са избрани, защото исторически 0x1F е бил първият байт на Unix файловете 'compress', докато 0x8B идентифицира Gzip.
  • Gzip остава често използван избор за компресиране на уеб отговори; употребата му варира според сайта и отговора.
  • Жан-Луп Гайли написва кода за компресиране, докато Марк Адлер написва кода за декомпресиране (inflate); и двамата получават наградата за софтуерни системи на ACM.

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

Защо Gzip не може да компресира директно папка?

Gzip е проектиран да компресира един единствен поток от байтове. За да компресират папка, системите Unix първо обединяват папката в един .tar файл, след което я компресират с Gzip, за да създадат .tar.gz файл.

Каква е разликата между .gz и .zip?

.zip е архивен формат, който опакова множество файлове заедно с индекс на директорията. .gz компресира само един единствен файл и обикновено се комбинира с tar на Unix системите.

Как мога да декомпресирам .gz файл на Windows или Mac?

Използвайте File2File.app за незабавно декомпресиране на .gz файлове директно във вашия уеб браузър без инсталиране на софтуер.