Outils
Guides

Compression et décompression gzip / deflate / zlib

Encodage

Compressez ou décompressez du texte avec gzip, deflate ou zlib. Sortie en Base64 ou hexadécimal avec comparaison de taille avant/après.

100 % côté client Sans backend

Les URL distantes ne sont pas récupérées ; collez votre JSON directement.

Direction
Entrée
Sortie
Saisissez du texte à compresser, ou du Base64/hex à décompresser.
Sur cette page

Qu’est-ce que la compression gzip ?#

gzip est le compresseur sans perte généraliste de texte et d’octets utilisé partout sur le web — il soutient le Content-Encoding: gzip de HTTP, les fichiers .gz que vous récupérez sur les serveurs, et le format de transmission d’innombrables collecteurs de journaux. Il fonctionne en trouvant des motifs d’octets répétés et en les remplaçant par de courtes références, donc le texte avec de la répétition (code source, JSON, CSV, lignes de journal) rétrécit spectaculairement, tandis que les données déjà compressées ou aléatoires (JPEG, octets chiffrés) bougent à peine.

Cette page offre les trois algorithmes apparentés que l’on regroupe sous le nom de « gzip » dans le langage courant, et qui ne diffèrent que par l’enveloppe autour du même cœur DEFLATE :

  • gzip (RFC 1952) — le paquet complet : un en-tête avec un octet magique, la charge utile compressée, et une queue CRC32 + taille. C’est ce qu’utilisent les fichiers .gz et le gzip HTTP.
  • deflate (RFC 1951) — le flux compressé brut sans enveloppe. Sortie la plus petite, mais aucun contrôle d’intégrité ; certaines API (les anciennes Content-Encoding: deflate) attendent exactement cela.
  • zlib (RFC 1950) — un en-tête léger de 2 octets plus une somme de contrôle Adler-32, entre les deux autres.

Parce que la sortie compressée est binaire, l’outil la rend en texte Base64 ou Hex pour que vous puissiez la copier, la coller dans du JSON, ou la pipe ailleurs. La décompression fait l’inverse : elle lit du Base64 ou Hex et rend le texte UTF-8 d’origine.

Mode d’emploi#

  1. Choisissez l’algorithme dans la barre d’outils : gzip, deflate ou zlib.
  2. Choisissez la direction : Compresser (texte en entrée → Base64/Hex en sortie) ou Décompresser (Base64/Hex en entrée → texte en sortie).
  3. Choisissez l’encodage de sortie : Base64 ou Hex (en mode décompression, ce sélecteur est verrouillé, car l’outil détecte l’encodage automatiquement).
  4. Collez votre texte dans le panneau Entrée à gauche ; la taille d’entrée est affichée dans son en-tête. Le résultat remplit le panneau Sortie, avec sa taille dans l’en-tête aussi.
  5. Après une compression, la barre avant/après apparaît, montrant de combien la charge utile a gonflé ou rétréci. Utilisez Copier pour prendre le résultat, ou Télécharger pour l’enregistrer comme fichier .gz. Exemple charge une ligne de journal typique ; Effacer réinitialise tout.

Principales fonctionnalités#

  • Trois algorithmes, un seul contrôle. Basculez entre gzip, deflate et zlib pour voir exactement comment la surcoût d’enveloppe change la taille de sortie pour la même entrée.
  • Comparaison de taille honnête. La barre avant/après montre les comptes d’octets réels et le pourcentage signé — y compris le cas où la compression rend la charge utile plus grosse, ce qui est la chose la plus utile à savoir sur gzip.
  • Détection automatique d’encodage à la décompression. Collez du Base64 ou Hex et l’outil devine lequel c’est, donc vous n’avez pas à retenir.
  • UTF-8 strict au retour. Si les octets décompressés ne sont pas de l’UTF-8 valide (mauvais algorithme choisi, charge utile tronquée), l’outil le dit au lieu d’émettre des caractères de remplacement qui masqueraient l’erreur.
  • S’exécute dans votre navigateur. La compression s’exécute localement via une petite bibliothèque chargée paresseusement ; rien de ce que vous collez ne quitte la page.

Exemple détaillé#

Compresser une seule ligne de journal courte — l’entrée Exemple 2026-08-06 INFO request handled path=/api/stats status=200 (58 octets) — avec gzip et sortie Base64 donne :

H4sIAHcNdmoAAzMyMDLTNbDQNTBT8PRz81coSi0sTS0uUchIzEvJSU1RKEgsybDVTyzI1C8uSSwpVgCRpcW2RgYGACs/7EA6AAAA

La barre avant/après révèle la partie contre-intuitive : ces 58 octets de texte brut deviennent 75 octets une fois gzippés et encodés en Base64. L’entrée était trop courte et trop aléatoire pour que DEFLATE trouve quoi que ce soit à compresser, donc l’en-tête gzip, la queue et la surcoût Base64 (environ 33 %) s’empilent simplement par-dessus. C’est exactement pourquoi gzapper de minuscules charges utiles est inutile.

Contrastez avec du texte répétitif. Huit copies de la ligne transaction_id=txn_00001 status=paid amount=100 currency=usd\n totalisent 488 octets, et gzip les ramène à 84 octets — environ 17 % de l’original. C’est là que la compression gagne sa vie : plus de répétition, plus forte réduction.

Basculer la même ligne de journal courte sur deflate ramène la sortie à 57 octets (pas d’en-tête/queue) et zlib atterrit à 63 octets — pratique quand vous ciblez un format de transmission précis et devez correspondre exactement à l’autre bout.

FAQ#

gzip, deflate ou zlib — lequel choisir ?#

Faites correspondre l’autre côté. Pour les fichiers .gz, le Content-Encoding: gzip HTTP, et presque toutes les charges utiles d’API « compressées », utilisez gzip. N’utilisez deflate que lorsqu’une API documente spécifiquement du DEFLATE brut (certains serveurs Content-Encoding: deflate hérités). Utilisez zlib quand une bibliothèque ou un protocole le nomme explicitement. En cas de doute, gzip est le défaut sûr.

Ma sortie est plus grosse que l’entrée. Est-ce un bug ?#

Non — c’est ainsi que fonctionne la compression sans perte sur une entrée petite ou à forte entropie. Il y a une surcoût fixe par flux (en-tête, queue, le chauffage du dictionnaire), et si le contenu a peu de répétition, DEFLATE ne peut pas la compenser. Une règle pratique : gzip commence à gagner de façon fiable sur des charges utiles de quelques centaines d’octets ou plus, surtout du texte avec répétition. Pour de toutes petites valeurs, sautez la compression.

La décompression me dit que les données ne sont pas de l’UTF-8 valide. Qu’est-ce qui cloche ?#

Habituellement une de trois choses : vous avez choisi le mauvais algorithme (les données étaient compressées en zlib mais vous avez sélectionné gzip, ou vice versa), le Base64/Hex a été tronqué ou comporte des espaces parasites au milieu, ou l’original était binaire plutôt que du texte. Essayez les autres algorithmes tour à tour, et vérifiez que rien n’a tronqué la charge utile collée.

Cet outil peut-il compresser des images, de la vidéo ou des fichiers déjà zippés ?#

Vous pouvez coller n’importe quoi, mais vous gagnerez rarement quoi que ce soit. Les formats comme JPEG, PNG, MP4 et .zip/.gz sont déjà compressés, donc DEFLATE n’a plus rien à presser — la sortie fera à peu près la même taille, ou un peu plus. gzip est un outil pour le texte et les données structurées, pas pour une seconde passe sur des médias binaires.