Inicio › Herramientas para desarrolladores › Comprimir y descomprimir Gzip

Comprimir y descomprimir Gzip

Comprime texto o cualquier archivo con gzip, zlib o deflate sin formato y obtén el resultado en Base64, hexadecimal o como descarga .gz. Pega una cadena gzip en Base64 o hexadecimal, o suelta un archivo .gz, para descomprimirlo. Todo funciona en tu navegador con la API CompressionStream integrada.

Última actualización:

Publicidad
Publicidad

Cómo usar Comprimir y descomprimir Gzip

  1. Elige Comprimir o Descomprimir e indica si trabajas con texto o con un archivo.
  2. Elige el formato: gzip para archivos .gz y HTTP, zlib para muchas API y flujos de estilo PNG, deflate sin formato para entradas ZIP y algunas API web. Al descomprimir se puede detectar automáticamente.
  3. Introduce los datos: escribe o pega texto, pega una cadena Base64 o hexadecimal, o suelta un archivo.
  4. Lee las estadísticas para ver cuánto se han reducido los datos y, al descomprimir, los detalles del encabezado gzip.
  5. Copia o descarga el resultado: texto Base64 o hexadecimal, un archivo .gz o el archivo descomprimido.

gzip frente a zlib frente a deflate sin formato

Los tres envuelven los mismos datos comprimidos con DEFLATE (LZ77 más codificación Huffman, RFC 1951). Solo se diferencian en el encabezado y la suma de comprobación que los rodean, así que elige el que espera el programa receptor:

FormatoEncabezadoDatos finalesEmpieza porUso típico
gzip (RFC 1952)10 bytes + nombre y comentario opcionalesCRC-32 + tamaño original (8 bytes)1F 8B · Base64 H4sIArchivos .gz y .tgz, HTTP Content-Encoding: gzip
zlib (RFC 1950)2 bytesAdler-32 (4 bytes)78 9C, 78 01, 78 DA · Base64 eJBloques PNG, flujos PDF, zlib de Python, HTTP deflate
deflate sin formato (RFC 1951)ningunoningunosin firma fijaEntradas ZIP, WebSocket permessage-deflate, algunas API

Cómo leer las estadísticas de compresión

  • Ratio = tamaño comprimido ÷ tamaño original × 100. Un 25% significa que la salida es una cuarta parte de la entrada.
  • Espacio ahorrado = 100% − ratio.
  • Factor = tamaño original ÷ tamaño comprimido, por ejemplo 4.00 : 1.
  • En Base64 muestra la longitud del texto que guardarías o enviarías: 4 × ⌈bytes comprimidos ÷ 3⌉ caracteres. Gzip más Base64 solo compensa cuando la compresión ahorra más de un 25% aproximadamente.

Comandos equivalentes

Para reproducir o comprobar los resultados en la línea de comandos:

  • Comprimir a Base64: gzip -c file.txt | base64
  • Descomprimir Base64: echo 'H4sI…' | base64 -d | gunzip
  • Python: gzip.compress(data), zlib.compress(data) o zlib.compressobj(wbits=-15) para deflate sin formato
  • JavaScript: pasa blob.stream() por new CompressionStream('gzip') y léelo con new Response(stream).arrayBuffer()

Preguntas frecuentes

¿Cómo descomprimo una cadena gzip en Base64?

Elige Descomprimir, deja la entrada en Texto y pega la cadena Base64. La herramienta decodifica el Base64, reconoce el encabezado gzip (en Base64 empieza por H4sI, que son los bytes 1F 8B), lo descomprime y muestra el texto. Si el resultado es binario, usa el botón de descarga para guardarlo como archivo.

¿Qué diferencia hay entre gzip, zlib y deflate?

Los tres usan el mismo algoritmo de compresión DEFLATE (RFC 1951). Deflate sin formato es el flujo comprimido sin más. Zlib (RFC 1950) añade un encabezado de 2 bytes y una suma de comprobación Adler-32. Gzip (RFC 1952) añade un encabezado de 10 bytes con nombre de archivo y marca de tiempo opcionales, además de un CRC-32 y el tamaño original al final. Los datos comprimidos de dentro son idénticos.

¿Por qué mi salida comprimida es más grande que la entrada?

Gzip añade unos 18 bytes de encabezado y datos finales, y los datos muy cortos o aleatorios no tienen repeticiones que eliminar. El texto de menos de unos 100 bytes, los archivos ya comprimidos como JPEG, MP4 o ZIP y los datos cifrados normalmente no se reducen. Además, Base64 añade otro 33% porque usa 4 caracteres por cada 3 bytes.

¿Cuánto comprime gzip el texto?

Depende de lo repetitivos que sean los datos. El HTML, CSS, JavaScript y JSON típicos se reducen a un 15%–30% de su tamaño, y la prosa en inglés a un 35%–45%. El panel de estadísticas muestra la ratio exacta para tus datos.

¿Qué hacen los niveles de compresión?

El nivel 1 es el más rápido con una salida más grande, el nivel 9 se esfuerza más para obtener la salida más pequeña y el 6 es el predeterminado de gzip. El CompressionStream nativo del navegador no permite elegir el nivel, así que al seleccionar un número se carga la pequeña biblioteca pako para comprimir. Cualquier herramienta gzip puede descomprimir cualquier nivel.

¿Por qué la descompresión falla con un error?

Las causas habituales son una cadena Base64 cortada o con caracteres de más, datos que en realidad son un archivo ZIP (empiezan por PK; usa una herramienta para descomprimir ZIP), un formato equivocado (prueba Detección automática) o un flujo que no está comprimido. La herramienta muestra los primeros bytes que encontró para ayudarte a comprobarlo.

¿Se suben mis datos?

No. La compresión y la descompresión usan las API CompressionStream y DecompressionStream de tu navegador (o la biblioteca pako para los niveles), así que el texto y los archivos se quedan en tu dispositivo.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Formateadores y validadores de código →