Ferramentas
Guias

Compactar e descompactar gzip / deflate / zlib

Codificação

Comprima ou descomprima texto com gzip, deflate ou zlib. Saída em Base64 ou Hex com comparação de tamanho antes/depois.

100% no cliente Sem backend

URLs remotas não são buscadas; cole seu JSON diretamente.

Direção
Entrada
Saída
Insira texto para compactar, ou Base64/Hex para descompactar.
Nesta página

O que é a compressão gzip?#

gzip é o compressor de uso geral, sem perdas, de texto e bytes usado por toda a Web — suporta o Content-Encoding: gzip do HTTP, os arquivos .gz que se obtêm dos servidores, e o formato de transporte de inúmeros log shippers. Funciona encontrando padrões de bytes repetidos e substituindo-os por referências curtas, pelo que texto com repetição (código fonte, JSON, CSV, linhas de registro) encolhe dramaticamente, enquanto dados já comprimidos ou aleatórios (JPEGs, bytes encriptados) mal se mexem.

Esta página oferece os três algoritmos relacionados que são agrupados sob “gzip” na linguagem corrente, e diferem apenas no invólucro ao redor do mesmo núcleo DEFLATE:

  • gzip (RFC 1952) — o pacote completo: um cabeçalho com um byte mágico, o payload comprimido, e um trailer CRC32 + tamanho. É o que os arquivos .gz e o gzip do HTTP usam.
  • deflate (RFC 1951) — o fluxo comprimido em bruto sem invólucro. Saída mais pequena, mas sem verificação de integridade; algumas APIs (as mais velhas Content-Encoding: deflate) esperam exatamente isto.
  • zlib (RFC 1950) — um cabeçalho leve de 2 bytes mais uma soma de verificação Adler-32, a meio caminho entre os outros dois.

Como a saída comprimida é binária, a ferramenta renderiza-a como texto Base64 ou Hex para que se possa copiar, colar em JSON, ou encaminhar para outro lado. A descompressão faz o inverso: lê Base64 ou Hex e devolve o texto UTF-8 original.

Como usar#

  1. Escolha o algoritmo na barra de ferramentas: gzip, deflate ou zlib.
  2. Escolha a direção: Compactar (texto → Base64/Hex) ou Descompactar (Base64/Hex → texto).
  3. Escolha a codificação de saída: Base64 ou Hex (no modo descompactar este seletor fica bloqueado, pois a ferramenta deteta a codificação automaticamente).
  4. Cole no painel Entrada à esquerda; o tamanho da entrada aparece no cabeçalho. O resultado preenche o painel Saída, com o tamanho no cabeçalho também.
  5. Após uma compressão, a barra antes/depois aparece, mostrando quanto o payload cresceu ou encolheu. Use Copiar para recolher o resultado, ou Baixar para guardá-lo como arquivo .gz. Exemplo carrega uma linha de registro típica; Limpar repõe tudo.

Principais funcionalidades#

  • Três algoritmos, um controlo. Alterne entre gzip, deflate e zlib para ver exatamente como o overhead do invólucro muda o tamanho da saída para a mesma entrada.
  • Comparação de tamanho honesta. A barra antes/depois mostra as contagens reais de bytes e a percentagem assinada — incluindo o caso em que a compressão torna o payload maior, que é a coisa mais útil a saber sobre o gzip.
  • Deteção automática de codificação na descompressão. Cole Base64 ou Hex e a ferramenta descobre qual é, pelo que não tem de se lembrar.
  • UTF-8 estrito no caminho de volta. Se os bytes descomprimidos não são UTF-8 válido (algoritmo errado escolhido, payload truncado), a ferramenta diz-o em vez de emitir caracteres de substituição que escondem o erro.
  • Corre no seu navegador. A compressão corre localmente através de uma pequena biblioteca carregada preguiçosamente; nada do que cola sai da página.

Exemplo prático#

Comprimir uma única linha de registro curta — a entrada de Exemplo 2026-08-06 INFO request handled path=/api/stats status=200 (58 bytes) — com gzip e saída Base64 dá:

H4sIAHcNdmoAAzMyMDLTNbDQNTBT8PRz81coSi0sTS0uUchIzEvJSU1RKEgsybDVTyzI1C8uSSwpVgCRpcW2RgYGACs/7EA6AAAA

A barra antes/depois revela a parte contraintuitiva: esses 58 bytes de texto simples tornam-se 75 bytes depois de comprimidos com gzip e codificados em Base64. A entrada era demasiado curta e demasiado aleatória para o DEFLATE encontrar alguma coisa para comprimir, pelo que o cabeçalho, o trailer e o overhead do Base64 (cerca de 33%) simplesmente se acumulam por cima. É exatamente por isso que fazer gzip de payloads minúsculos não serve de nada.

Contraste com texto repetitivo. Oito cópias da linha transaction_id=txn_00001 status=paid amount=100 currency=usd\n totalizam 488 bytes, e o gzip leva-as para 84 bytes — cerca de 17% do original. É aqui que a compressão justifica o seu lugar: quanto mais repetição, mais profundo o encolhimento.

Mudar a mesma linha de registro curta para deflate baixa a saída para 57 bytes (sem cabeçalho/trailer) e zlib fica nos 63 bytes — útil quando se visa um formato de transporte específico e se precisa de corresponder à outra ponta exatamente.

FAQ#

gzip, deflate ou zlib — qual devo escolher?#

Corresponda à outra ponta. Para arquivos .gz, Content-Encoding: gzip do HTTP, e quase todos os payloads de API “comprimidos”, use gzip. Use deflate apenas quando uma API documenta especificamente DEFLATE em bruto (alguns servidores legados Content-Encoding: deflate). Use zlib quando uma biblioteca ou protocolo o nomeia explicitamente. Em caso de dúvida, gzip é a predefinição segura.

A minha saída é maior que a entrada. Isso é um bug?#

Não — é assim que a compressão sem perdas funciona em entradas pequenas ou de alta entropia. Há um overhead fixo por fluxo (cabeçalho, trailer, o aquecimento do dicionário), e se o conteúdo tem pouca repetição, o DEFLATE não o consegue recuperar. Uma regra prática: o gzip começa a ganhar de forma fiável em payloads de algumas centenas de bytes ou mais, especialmente texto com repetição. Para valores minúsculos, dispense a compressão.

A descompressão diz-me que os dados não são UTF-8 válidos. O que correu mal?#

Normalmente uma de três coisas: escolheu o algoritmo errado (os dados eram comprimidos com zlib mas selecionou gzip, ou vice-versa), o Base64/Hex foi truncado ou tem espaços em branco perdidos a meio, ou o original era binário em vez de texto. Experimente os outros algoritmos por sua vez, e verifique que nada recortou o payload colado.

Isto consegue comprimir imagens, vídeo ou arquivos já comprimidos?#

Pode colar o que for, mas raramente ganhará alguma coisa. Formatos como JPEG, PNG, MP4 e .zip/.gz já são comprimidos, pelo que o DEFLATE não tem nada para espremer — a saída terá cerca do mesmo tamanho ou ligeiramente maior. O gzip é uma ferramenta para texto e dados estruturados, não uma segunda passagem sobre media binária.