Кодирование
Gzip/Deflate ↔ Base64
Сжатие текста в Gzip или Deflate с последующим Base64-кодированием результата — и обратно. Работает через Compression Streams API прямо в браузере.
Base64 сам по себе не сжимает данные — наоборот, увеличивает размер примерно на 33%. Чтобы передавать большой текст в текстовом канале компактно, его сначала сжимают Gzip или Deflate, а уже результат кодируют в Base64.
Как пользоваться
- Сжатие: вставьте текст — инструмент сожмёт его Gzip или Deflate (Compression Streams API браузера) и закодирует результат в Base64.
- Распаковка: вставьте Base64-строку сжатого содержимого, чтобы получить исходный текст обратно.
- Выберите Gzip или Deflate в зависимости от того, какой формат ожидает принимающая система.
Типичные сценарии
- Компактное встраивание большого текстового значения (например, SVG или конфига) в URL-параметр или cookie с ограничением размера.
- Подготовка сжатого payload для API, принимающего Base64-encoded Gzip-данные.
- Распаковка данных, полученных в таком формате от другой системы, для чтения вручную.
Что стоит помнить
Выигрыш от сжатия заметен только на достаточно больших и сжимаемых текстах — на коротких строках накладные расходы Gzip-заголовка и расширение Base64 могут даже увеличить итоговый размер.
Deflate — это сжатие без заголовков Gzip, поэтому результат компактнее, но формат менее самодостаточен: принимающая сторона должна точно знать, что это именно Deflate.
Статья об этом инструменте: Gzip + Base64: сжатие данных для передачи текстом
Часто задаваемые вопросы
В чём разница между Gzip и Deflate?
Deflate — это сам алгоритм сжатия, а Gzip — обёртка вокруг него с дополнительным заголовком и контрольной суммой CRC. Из-за этого «сырые» Deflate-данные немного компактнее, но для декодирования важно точно знать, какой формат использовался при сжатии — они не взаимозаменяемы.
Зачем поверх сжатия ещё и Base64?
Результат сжатия — это бинарные данные, а Base64 превращает их в безопасный для копирования текст, который можно вставить в URL, JSON или переменную окружения без риска повредить байты.
Почему инструмент может не работать в некоторых браузерах?
Сжатие и распаковка выполняются через Compression Streams API — в старых или нестандартных браузерах он может отсутствовать, и тогда инструмент не сработает. Обработка при этом всегда происходит локально, без отправки данных на сервер.
Почему распаковка иногда даёт ошибку «invalid header»?
Самая частая причина — перепутанный формат: данные сжаты как «сырой» Deflate без заголовка, а распаковываются как Gzip (который ожидает собственный заголовок и CRC-32), или наоборот. Попробуйте переключить формат в настройках инструмента.
Всегда ли сжатие уменьшает итоговый размер?
Нет. На очень коротких строках накладные расходы заголовков Gzip и увеличение от Base64 могут перевесить выигрыш от сжатия — подход имеет смысл только для достаточно больших и сжимаемых текстовых данных.