Кодирование
Gzip/Deflate ↔ Base64
Сжатие текста в Gzip или Deflate с последующим Base64-кодированием результата — и обратно. Работает через Compression Streams API прямо в браузере.
Base64 by itself doesn't compress anything — quite the opposite, it grows the size by about 33%. To send large text compactly through a text-only channel, it's first compressed with Gzip or Deflate, and only then is the result Base64-encoded.
How to use it
- Compress: paste text and the tool compresses it with Gzip or Deflate (the browser's Compression Streams API) and encodes the result as Base64.
- Decompress: paste a Base64 string of compressed content to get the original text back.
- Pick Gzip or Deflate depending on which format the receiving system expects.
Common uses
- Compactly embedding a large text value (an SVG, a config) in a URL parameter or cookie with a size limit.
- Preparing a compressed payload for an API that accepts Base64-encoded Gzip data.
- Decompressing data received in this format from another system so it can be read manually.
Things to keep in mind
Compression only pays off on sufficiently large, compressible text — on short strings the Gzip header overhead plus the Base64 expansion can actually make the result bigger.
Deflate skips Gzip's headers, so its output is more compact, but the format is less self-describing: the receiving side needs to know in advance that it's Deflate specifically.
Статья об этом инструменте: Gzip + Base64: сжатие данных для передачи текстом
Часто задаваемые вопросы
В чём разница между Gzip и Deflate?
Deflate — это сам алгоритм сжатия, а Gzip — обёртка вокруг него с дополнительным заголовком и контрольной суммой CRC. Из-за этого «сырые» Deflate-данные немного компактнее, но для декодирования важно точно знать, какой формат использовался при сжатии — они не взаимозаменяемы.
Зачем поверх сжатия ещё и Base64?
Результат сжатия — это бинарные данные, а Base64 превращает их в безопасный для копирования текст, который можно вставить в URL, JSON или переменную окружения без риска повредить байты.
Почему инструмент может не работать в некоторых браузерах?
Сжатие и распаковка выполняются через Compression Streams API — в старых или нестандартных браузерах он может отсутствовать, и тогда инструмент не сработает. Обработка при этом всегда происходит локально, без отправки данных на сервер.
Почему распаковка иногда даёт ошибку «invalid header»?
Самая частая причина — перепутанный формат: данные сжаты как «сырой» Deflate без заголовка, а распаковываются как Gzip (который ожидает собственный заголовок и CRC-32), или наоборот. Попробуйте переключить формат в настройках инструмента.
Всегда ли сжатие уменьшает итоговый размер?
Нет. На очень коротких строках накладные расходы заголовков Gzip и увеличение от Base64 могут перевесить выигрыш от сжатия — подход имеет смысл только для достаточно больших и сжимаемых текстовых данных.