Comprimir y descomprimir gzip / deflate / zlib
CodificaciónComprime o descomprime texto con gzip, deflate o zlib. Salida en Base64 o hexadecimal con comparación de tamaño antes/después.
No se recuperan URLs remotas; pega tu JSON directamente.
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
.gzy 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#
- Elige el algoritmo en la barra de herramientas: gzip, deflate o zlib.
- Elige la dirección: Comprimir (texto → Base64/Hex) o Descomprimir (Base64/Hex → texto).
- 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).
- 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.
- 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.