Gzip
Reduzca un texto con gzip y vea cuánto ahorra: en el ejemplo, una línea que repite hola ocho veces baja de 39 a 28 bytes. Al descomprimir recupera exactamente el original, sin perder nada. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Texto descomprimido
- hola hola hola hola hola hola hola hola
- Tamaño original (bytes)
- 39
- Tamaño GZIP (bytes)
- 28
Existe para los momentos en que necesita control real sobre la compresión, más allá de la capa automática que ya aplica su servidor web o su CDN.
Qué le hace gzip a su texto
Gzip busca fragmentos de texto que se repiten y sustituye cada repetición por una referencia corta a la primera, así que cuanto más se repite un texto, más pequeño queda. No pierde nada: al descomprimir vuelve cada carácter exactamente como estaba, y por eso se usa con confianza para registros, exportaciones y copias de seguridad. Además, casi cualquier herramienta lo lee desde los años 1990, de modo que un resultado gzip se abre prácticamente en cualquier sitio. En el ejemplo, ocho copias de hola ocupan 39 bytes y solo 28 tras comprimir, y la herramienta muestra siempre los dos tamaños para que usted valore si mereció la pena.
Cuándo comprimir y los errores habituales
Un uso típico es el archivo: comprimir los registros rotados antes de moverlos a un almacenamiento de largo plazo reduce el coste de guardarlos, sin cargar la compresión al servidor de la aplicación. El resultado comprimido llega como texto en base64, una forma segura de guardarlo o pegarlo. Hay dos errores frecuentes. El primero es esperar una gran reducción de un texto corto: la cabecera que añade gzip puede comerse casi todo el ahorro. El segundo es intentar descomprimir algo que no es un resultado gzip en base64, como texto normal o una copia dañada, que no se puede expandir y se rechaza en lugar de producir basura.
Qué puede hacer con ella
Pipelines de archivado de logs
Comprima con gzip los archivos de log rotados antes de moverlos a almacenamiento frío, reduciendo costos de almacenamiento sin cargar la compresión al servidor de la aplicación.
Preguntas frecuentes
¿Qué algoritmo da el resultado más pequeño, gzip o brotli?
Brotli suele comprimir datos de texto más que gzip a una velocidad comparable, aunque la ganancia real depende de su contenido específico.
¿Comprimir un archivo ya comprimido como un JPEG lo reduce más?
No de forma significativa: formatos como JPEG, PNG o un archivo ya comprimido con gzip están cerca de su límite de entropía, así que volver a comprimirlos aporta poco o nada.
¿Por qué un texto corto apenas se reduce con gzip?
Porque gzip funciona detectando repeticiones y además añade una pequeña cabecera propia, así que un texto corto o variado tiene poco que quitar. En el ejemplo, una línea que repite una palabra ocho veces pasa de 39 a 28 bytes; un texto largo y repetitivo gana más.
¿Cómo recupero mi texto original?
Elija la opción de descomprimir y pegue el resultado comprimido. La herramienta lo expande y le devuelve exactamente el texto con el que empezó, letra por letra, porque la compresión gzip no descarta ninguna información.
¿Qué aspecto tiene el resultado comprimido?
Llega como una línea de letras, cifras y algunos símbolos, lo que se conoce como base64, de modo que se puede pegar en un mensaje, un formulario o un archivo de ajustes sin que se estropee. A su lado verá el tamaño antes y después, en bytes.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/data/gzip \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"hola mundo"}'const res = await fetch("https://api.kit.forhosting.com/data/gzip", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "hola mundo"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/gzip",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "hola mundo"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/gzip", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"hola mundo"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"hola mundo"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/gzip", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "hola mundo"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.gzip",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Comprima un payload con gzip, deflate o brotli, o descomprímalo de vuelta a sus bytes originales, mediante un solo endpoint que se encarga del trabajo pesado que su aplicación no debería hacer en un hilo de solicitud.
La compresión está en todas partes, pero rara vez bajo su control
La mayoría de los stacks web comprimen las respuestas HTTP de forma transparente, lo cual funciona bien para servir páginas pero es inútil cuando necesita comprimir un archivo de log antes de archivarlo, reducir una exportación JSON antes de guardarla, o descomprimir un webhook entrante que llegó codificado en gzip desde un tercero. Esas son tareas a nivel de archivo o blob, no de respuesta HTTP, y hacerlas en línea dentro del código de su aplicación significa quemar ciclos de CPU que podrían estar atendiendo usuarios.
Tres algoritmos, tres compromisos distintos
POST /data/gzip recibe un parámetro de algoritmo — gzip, deflate o brotli — más una dirección de compress o decompress, y devuelve el resultado mediante un task_id. Gzip es la opción más universal, legible por prácticamente cualquier herramienta desde los años noventa; deflate es su algoritmo central sin el envoltorio de gzip, útil cuando una especificación lo exige explícitamente (como algunas estructuras internas de ZIP o implementaciones HTTP más antiguas); brotli, desarrollado y liberado como código abierto más recientemente, suele comprimir más que gzip a una velocidad comparable, lo cual importa cuando está optimizando costos de almacenamiento o tamaño de transferencia para payloads de texto grandes.
Qué determina el tamaño final que obtiene
La razón de compresión depende por completo de la naturaleza de sus datos: texto muy repetitivo como logs, exportaciones CSV o JSON minificado puede reducirse de forma drástica, mientras que formatos ya comprimidos como JPEG o un archivo previamente comprimido con gzip apenas cambiarán de tamaño, e incluso pueden crecer un poco por el overhead del formato. El endpoint no intenta adivinar qué es óptimo para su contenido: usted elige el algoritmo, y el resultado le dice exactamente qué razón de compresión obtuvo.
Diseñado para flujos de trabajo, no para descargas puntuales
Una tarea fallida — entrada malformada, un flujo ilegible — no le cuesta nada, porque solo cobramos las tareas que terminan con éxito después de agotar los reintentos. Como cada llamada es asíncrona y devuelve un task_id, puede lanzar tareas de compresión desde un worker de cola, una exportación programada o un manejador de webhooks sin bloquear la respuesta, y luego recoger el archivo comprimido o descomprimido desde un enlace firmado o su propio receptor de webhooks.
Dónde encaja dentro de un proceso más grande
Trátelo como un bloque utilitario que inserta en cualquier flujo que mueva datos entre sistemas con expectativas de compresión distintas, no como un destino en sí mismo. Este endpoint combina de forma natural con nuestras herramientas de comprimidos y conversión: descomprima un payload gzip entrante, entregue los bytes crudos a un conversor de formato y luego vuelva a comprimir la salida con brotli antes de guardarla.
Casos de integración
Decodificación de webhooks entrantes
Descomprima payloads codificados en gzip enviados por un proveedor externo antes de parsear el JSON o XML que traen adentro.
Optimización de exportaciones de datos
Comprima con brotli exportaciones grandes en CSV o JSON antes de ofrecerlas como descarga, reduciendo el tiempo de transferencia para usuarios con conexiones lentas.
Compatibilidad con formatos heredados
Comprima con deflate un payload al integrarse con un sistema o protocolo antiguo que espera el algoritmo crudo sin el encabezado de gzip.
Preguntas técnicas
¿Cómo comprimo un archivo usando la API de gzip?
Envíe el archivo por POST a /data/gzip con la dirección en compress y el algoritmo que quiera (gzip, deflate o brotli); recibirá un task_id y el archivo comprimido llega por webhook o enlace firmado.
¿Soporta brotli además de gzip?
Sí, el endpoint soporta gzip, deflate y brotli, y se elige con un solo parámetro de algoritmo en la misma solicitud.
¿Puedo descomprimir un archivo de vuelta a su forma original?
Sí, defina la dirección como decompress y el endpoint revierte la operación, devolviendo los bytes originales.
¿Existe un plan gratuito para la API de compresión?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cuánto cuesta cada solicitud de compresión?
$0.002 por solicitud, ya sea que comprima un archivo de 1KB o una exportación grande, y las solicitudes fallidas nunca se cobran.
¿Cuánto tiempo tengo para descargar el resultado?
El enlace firmado del resultado es válido durante 24 horas; para flujos automatizados, un webhook entrega el resultado en cuanto la tarea termina.