Gzip et Deflate sont des algorithmes de compression qui réduisent la taille des données, mais le résultat est binaire, pas textuel. Si ces données compressées doivent transiter par un canal prévu pour du texte (URL, cookie, champ JSON), elles sont en plus encodées en Base64 — d'où le duo « Gzip/Deflate ↔ Base64 », que des outils de diagrammes ou de tableaux blancs utilisent pour empaqueter tout l'état d'un document dans un lien partageable.
Pourquoi le français administratif se compresse si bien
Les textes juridiques et administratifs français sont réputés pour leurs formules répétées d'un paragraphe à l'autre — « il est convenu que », « conformément aux dispositions de l'article » — et cette redondance textuelle est exactement ce que Gzip exploite pour remplacer les motifs récurrents par des références bien plus courtes. Un contrat verbeux compresse souvent mieux qu'un texte créatif où chaque phrase est formulée différemment.
L'ordre habituel des opérations
- Le texte d'origine est compressé avec Gzip ou Deflate — la taille diminue.
- Le résultat binaire compressé est encodé en Base64 — la taille remonte un peu, mais les données deviennent du texte.
- La chaîne obtenue est transmise en toute sécurité via un canal texte.
Le décodage se fait dans l'ordre inverse : d'abord Base64 → données binaires, puis décompression Gzip/Deflate → texte d'origine.
Cas d'usage courants
- Empaqueter l'état complet d'une application dans une URL pour qu'un lien partagé rouvre exactement la même vue.
- Stocker des données compressées dans un cookie ou un champ texte de base de données.
- Débogage : décompresser et lire un contenu encodé ainsi par un système tiers ou une API.
Gzip face au Deflate « brut »
Gzip est en réalité un format d'enveloppe autour de l'algorithme Deflate : il ajoute son propre en-tête et une somme de contrôle (CRC32) par-dessus les données compressées. Le Deflate « brut » n'a pas ces octets supplémentaires, donc le résultat est légèrement plus compact, mais il ne peut pas être décompressé par un utilitaire Gzip sans préciser explicitement qu'il s'agit du format brut. Confondre ces deux variantes est une cause fréquente de l'erreur « invalid header » lors d'une tentative de décompression.