Архив GZIP (.gz)

IETF Стандарт

Gzip (GZ) - это стандартная утилита и формат сжатия GNU, повсеместно используемый в операционных системах Unix и на интернет-серверах HTTP для быстрого сжатия файлов и веб-ресурсов.

Конвертировать из TAR в GZ

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

Анализ и метаданные

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

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

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

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

Сигнатура заголовка на уровне байтов (Magic Bytes)

Операционные системы и анализаторы файлов идентифицируют файлы 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% точное сохранение данных без потерь на уровне битов
Потоковая передача и прогрессивная загрузкаПоследовательная потоковая передача за один проход по каналам (pipes) и через HTTP-сети

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

Технический атрибутGZ (Текущий)BZ2BROTLIZSTD
Скорость распаковкиВысокая (~300 МБ/с)Низкая (~40 МБ/с)Очень высокая (~400 МБ/с)Сверхвысокая (>1.5 ГБ/с)
Универсальная поддержка в веб100% всех браузеров и серверовНулевая поддержка веб-браузерамиПоддерживается по HTTPS во всех браузерахРастущая поддержка в браузерах и на серверах
Упаковка нескольких файловТребуется TAR-контейнер (.tar.gz)Требуется TAR-контейнер (.tar.bz2)Сырой поток или пользовательский контейнерТребуется TAR-контейнер (.tar.zst)
Проверка контрольной суммы32-битная CRC (CRC-32)32-битная CRC для каждого блокаОтсутствует встроенная в поток64-битная xxHash

Типичные режимы повреждения и руководство по восстановлению в HEX

Ошибка извлечения: 'gzip: stdin: unexpected end of file'.

Первопричина: Преждевременное прерывание передачи файла, обрывающее поток DEFLATE или 8-байтовый колонтитул с CRC32.

Восстановление: Извлеките частичное содержимое с помощью команды 'gzip -d --keep broken.gz' или средства извлечения Gzip в File2File.

Анализ безопасности и векторы атак на парсер

Анализаторы Gzip обрабатывают управляемые пользователем заголовки и битовые потоки DEFLATE, которые необходимо защищать от бомб декомпрессии.

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

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

Защитные лучшие практики: Устанавливайте строгие квоты распаковки и лимиты предельного объема памяти в службах автоматической обработки.

Исторические истоки и вехи

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

Ключевые преимущества и плюсы

  • Универсальный стандарт для интернет-сжатия HTTP ('Content-Encoding: gzip'), поддерживаемый 100% веб-клиентов.
  • Сохраняет исходные метки времени модификации файла и опциональные оригинальные имена файлов внутри 10-байтового заголовка.
  • Низкая нагрузка на ЦП при распаковке, что обеспечивает плавную работу на маломощных мобильных устройствах и роутерах.

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

  • Сжатие только одного файла: невозможно сжать несколько файлов или директорий без предварительного объединения их в TAR-контейнер.
  • Коэффициент сжатия ниже, чем у современных алгоритмов вроде Brotli и Zstandard для современного веб-текста.
  • Поле размера распакованных данных в колонтитуле является 32-битным по модулю 2^32, что вызывает баги отображения при переполнении для файлов размером более 4 ГБ.

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

  • Сигнатурные байты 0x1F 0x8B были выбраны потому, что 0x1F исторически был первым байтом файлов Unix 'compress', а 0x8B идентифицировал Gzip.
  • Более 80% всех веб-сайтов в интернете используют сжатие Gzip для доставки веб-страниц браузерам.
  • Жан-Лу Гайе написал код сжатия, а Марк Адлер написал код распаковки (inflate); оба получили премию ACM Software System Award.

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

Почему я не могу сжать папку с помощью Gzip?

Gzip был разработан для сжатия одного потока байтов. Чтобы сжать папку, системы Unix сначала упаковывают её в один файл .tar, а затем сжимают с помощью Gzip, создавая файл .tar.gz.

В чем разница между .gz и .zip?

.zip - это формат архива, который упаковывает несколько файлов вместе с оглавлением каталога. .gz сжимает только один файл и обычно используется в паре с tar в системах Unix.

Как распаковать файл .gz в Windows или Mac?

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