Архів GZIP (.gz)

IETF Стандарт

Gzip (GZ) - це стандартна утиліта та формат файлів стиснення GNU, який повсюдно використовується в операційних системах Unix та інтернет-серверах HTTP для швидкого стиснення файлів і вебконтенту.

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

Безкоштовний конвертер з TAR у GZ у браузері. Миттєво конвертуйте файли на своєму пристрої.

Аналіз та метадані

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

Виберіть або перетягніть файли сюди

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

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

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

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

ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 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

Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі

Помилка витягнення: '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 безпосередньо у своєму веббраузері без встановлення будь-якого програмного забезпечення.