Herramientas
Guías

Comprimir y descomprimir gzip / deflate / zlib

Codificación

Comprime o descomprime texto con gzip, deflate o zlib. Salida en Base64 o hexadecimal con comparación de tamaño antes/después.

100 % del lado del cliente Sin backend

No se recuperan URLs remotas; pega tu JSON directamente.

Dirección
Entrada
Salida
Introduce texto para comprimir, o Base64/Hex para descomprimir.
En esta página

¿Qué es la compresión gzip?#

gzip es el compresor sin pérdidas de propósito general para texto y bytes que se usa en toda la web: respalda el Content-Encoding: gzip de HTTP, los archivos .gz que descargas de los servidores y el formato de transmisión de innumerables transportadores de logs. Funciona buscando patrones de bytes repetidos y sustituyéndolos por referencias cortas, así que el texto con repetición (código fuente, JSON, CSV, líneas de log) se encoge de forma drástica, mientras que los datos ya comprimidos o aleatorios (JPEG, bytes cifrados) apenas cambian.

Esta página ofrece los tres algoritmos relacionados que se agrupan bajo «gzip» en el lenguaje coloquial, y solo difieren en la envoltura alrededor del mismo núcleo DEFLATE:

  • gzip (RFC 1952): el paquete completo, con una cabecera que incluye un byte mágico, el payload comprimido y una cola con CRC32 + tamaño. Es lo que usan los archivos .gz y el gzip de HTTP.
  • deflate (RFC 1951): el flujo comprimido en bruto sin envoltura. Salida más pequeña, pero sin comprobación de integridad; algunas APIs (el viejo Content-Encoding: deflate) esperan exactamente esto.
  • zlib (RFC 1950): una cabecera ligera de 2 bytes más una suma de control Adler-32, intermedio entre los otros dos.

Como la salida comprimida es binaria, la herramienta la renderiza como texto Base64 o Hex para que puedas copiarla, pegarla en JSON o enviarla a otro sitio. La descompresión hace lo contrario: lee Base64 o Hex y devuelve el texto UTF-8 original.

Cómo usarlo#

  1. Elige el algoritmo en la barra de herramientas: gzip, deflate o zlib.
  2. Elige la dirección: Comprimir (texto → Base64/Hex) o Descomprimir (Base64/Hex → texto).
  3. Elige la codificación de salida: Base64 o Hex (en modo descompresión este selector queda fijo, porque la herramienta detecta la codificación automáticamente).
  4. Pega en el panel de Entrada a la izquierda; el tamaño de entrada se muestra en su cabecera. El resultado rellena el panel de Salida, con su tamaño en la cabecera también.
  5. Tras una compresión, aparece la barra antes/después, que muestra cuánto creció o se encogió el payload. Usa Copiar para llevarte el resultado, o Descargar para guardarlo como archivo .gz. Ejemplo carga una línea de log típica; Limpiar lo reinicia todo.

Características principales#

  • Tres algoritmos, un único control. Alterna entre gzip, deflate y zlib para ver exactamente cómo cambia el tamaño de salida con la sobrecarga de la envoltura para la misma entrada.
  • Comparación de tamaño honesta. La barra antes/después muestra los conteos de bytes reales y el cambio porcentual con signo, incluido el caso en que la compresión hace el payload más grande, que es lo más útil que hay que saber sobre gzip.
  • Detección automática de codificación al descomprimir. Pega Base64 o Hex y la herramienta averigua cuál de las dos es, así que no tienes que recordarlo.
  • UTF-8 estricto a la vuelta. Si los bytes descomprimidos no son UTF-8 válido (algoritmo equivocado elegido, payload truncado), la herramienta lo dice en vez de emitir caracteres de reemplazo que oculten el error.
  • Se ejecuta en tu navegador. La compresión se ejecuta localmente mediante una librería pequeña cargada perezosamente; nada de lo que pegas sale de la página.

Ejemplo detallado#

Comprimir una sola línea de log corta —la entrada de Ejemplo 2026-08-06 INFO request handled path=/api/stats status=200 (58 bytes)— con gzip y salida Base64 da:

H4sIAHcNdmoAAzMyMDLTNbDQNTBT8PRz81coSi0sTS0uUchIzEvJSU1RKEgsybDVTyzI1C8uSSwpVgCRpcW2RgYGACs/7EA6AAAA

La barra antes/después revela la parte contraintuitiva: esos 58 bytes de texto plano se convierten en 75 bytes tras comprimirlos con gzip y codificarlos en Base64. La entrada era demasiado corta y demasiado aleatoria para que DEFLATE encontrase nada que comprimir, así que la cabecera y cola de gzip y la sobrecarga de Base64 (un 33 %) simplemente se acumulan encima. Es exactamente la razón por la que comprimir payloads minúsculos no tiene sentido.

Contrástalo con texto repetitivo. Ocho copias de la línea transaction_id=txn_00001 status=paid amount=100 currency=usd\n totalizan 488 bytes, y gzip las reduce a 84 bytes: aproximadamente el 17 % del original. Ahí es donde la compresión se gana su sueldo: cuanta más repetición, mayor reducción.

Cambiar la misma línea corta de log a deflate baja la salida a 57 bytes (sin cabecera/cola) y zlib queda en 63 bytes: práctico cuando te diriges a un formato de transmisión concreto y necesitas coincidir con el otro extremo exactamente.

Preguntas frecuentes#

gzip, deflate o zlib, ¿cuál elijo?#

Coincide con el otro lado. Para archivos .gz, Content-Encoding: gzip y casi cualquier payload de API «comprimido», usa gzip. Usa deflate solo cuando una API documenta específicamente DEFLATE puro (algunos servidores heredados con Content-Encoding: deflate). Usa zlib cuando una librería o protocolo lo nombra explícitamente. Ante la duda, gzip es el valor por defecto seguro.

Mi salida es más grande que la entrada. ¿Es un fallo?#

No, es así como funciona la compresión sin pérdidas con entradas pequeñas o de alta entropía. Hay una sobrecarga fija por flujo (cabecera, cola, el calentamiento del diccionario), y si el contenido poca repetición, DEFLATE no puede recuperarla. Una regla práctica: gzip empieza a ganar de fiable en payloads de unos cientos de bytes o más, sobre todo con texto repetitivo. Para valores diminutos, sáltate la compresión.

Descomprimir me dice que los datos no son UTF-8 válidos. ¿Qué ha fallado?#

Normalmente una de tres cosas: elegiste el algoritmo equivocado (los datos estaban comprimidos con zlib pero seleccionaste gzip, o viceversa), el Base64/Hex se truncó o tiene espacios en blanco extra en medio, o el original era binario en vez de texto. Prueba los otros algoritmos uno a uno y comprueba que nadie recortase el payload pegado.

¿Puede comprimir imágenes, vídeo o archivos ya comprimidos?#

Puedes pegar lo que sea, pero rara vez ganarás algo. Formatos como JPEG, PNG, MP4 y .zip/.gz ya están comprimidos, así que DEFLATE no tiene nada que apretar: la salida será más o menos del mismo tamaño o algo mayor. gzip es una herramienta para texto y datos estructurados, no para una segunda pasada sobre medios binarios.