Что такое GZIP-распаковка?
GZIP — это формат сжатия без потерь, определённый RFC 1952. Распаковка обращает алгоритм DEFLATE (RFC 1951) — она считывает обратно ссылки LZ77 и символы, закодированные Хаффманом, чтобы точно восстановить исходные байты.
Как работает GZIP-распаковка?
Ваш ввод обрабатывается целиком в вашем браузере с использованием встроенного API DecompressionStream('gzip'). Основные шаги:
- Инструмент разбирает ваш ввод как Base64 или hex (для текста) либо считывает сырые байты загруженного вами файла .gz.
- 10-байтовый заголовок gzip проверяется, идентифицируется полезная нагрузка DEFLATE, и 8-байтовый завершитель (CRC32 + исходная длина по модулю 2^32) откладывается для проверки.
- Байты пропускаются через
DecompressionStream, настроенный на форматgzip. - Браузер обращает DEFLATE: коды Хаффмана декодируются обратно в символы, а обратные ссылки LZ77 разворачиваются в исходный поток байтов.
- Поток проверяет CRC32 и завершитель длины относительно восстановленных байтов, затем выдаёт их как UTF-8-текст в текстовой форме или как файл для скачивания в форме загрузки.
Зачем распаковывать этим инструментом?
- Изучайте ответы: читайте HTTP-тела и нагрузки CDN, закодированные в GZIP, которые другие инструменты показали бы как бинарный шум.
- Восстанавливайте архивы: извлекайте файлы журналов .gz, дампы конфигураций и компоненты tarball без установки дополнительного ПО.
- Конфиденциальность: распаковка происходит полностью в вашем браузере. Ввод никогда не достигает наших серверов.
- Соответствует стандартам: принимает любой поток RFC 1952, создаваемый CLI
gzip, HTTP-серверами или стандартными библиотеками языков Python, Node.js, Go, Java или Rust.
Каковы распространённые применения GZIP-распаковки?
Распаковка GZIP встречается во множестве веб-задач и инструментов:
- Отладка API: вставьте необработанное тело ответа с
Content-Encoding: gzip, чтобы увидеть лежащие в основе JSON или HTML. - Анализ журналов: открывайте ротированные файлы
.log.gz, чтобы искать события через grep без полного конвейера извлечения. - Проверка резервных копий: подтвердите, что архив .gz, созданный другим инструментом, чисто распаковывается, прежде чем на него полагаться.
Как выглядит пример GZIP-распаковки?
Строка Base64 длиной 200 байт, начинающаяся с H4sI, — это канонический признак заголовка gzip: магические байты 1f 8b кодируются в эти символы. Если вставить эту строку и нажать РАСПАКОВАТЬ, исходный текст воспроизведётся в точности байт за байтом, включая пробелы и завершающие переводы строк.
Этот распаковщик GZIP принимает любой ввод RFC 1952 и выдаёт исходные байты прямо в вашем браузере. Соедините его с компрессором GZIP, чтобы выполнять туда-обратно с текстом или файлами, не покидая страницы.