Format d'archive GZIP

GZIP est un format de fichier et une application logicielle populaire utilisé pour la compression et la décompression de fichiers. Il a été développé comme algorithme de compression gratuit et open source par Jean-Loup Gailly et Mark Adler au début des années 1990. Le nom « GZIP » signifie GNU ZIP, indiquant son association avec le projet GNU.
La compression GZIP fonctionne en réduisant la taille des fichiers, ce qui facilite leur transfert sur les réseaux ou leur stockage sur disque. Il réalise la compression en remplaçant les chaînes de données répétées par des références, réduisant ainsi la redondance et la taille globale du fichier. GZIP est particulièrement efficace pour compresser des fichiers texte tels que HTML, CSS, JavaScript, XML et JSON, mais il peut également être utilisé pour compresser d’autres types de fichiers.

À propos des informations sur les archives GZIP

Les informations d’archive GZIP font référence aux métadonnées et aux données contenues dans un fichier compressé à l’aide de l’algorithme de compression GZIP. Les archives GZIP incluent généralement des informations telles que les attributs des fichiers, les horodatages, la méthode de compression et d’autres données pertinentes nécessaires à la décompression et à la restauration des fichiers. Ces métadonnées sont cruciales pour identifier et traiter correctement les fichiers compressés.
De plus, les informations de l’archive GZIP peuvent également inclure des détails sur le processus de compression lui-même, tels que le niveau de compression, les sommes de contrôle et tous les indicateurs ou options supplémentaires utilisés pendant la compression. Ces informations sont essentielles pour garantir l’intégrité et l’exactitude des données compressées lors de leur décompression. Dans l’ensemble, la compréhension des informations des archives GZIP est essentielle pour gérer et travailler efficacement avec des fichiers compressés, que ce soit à des fins de stockage de données, de transmission sur des réseaux ou d’archivage.

Evolution du format d'archive GZIP

Le format d’archive GZIP trouve ses racines à la fin des années 1980, lorsque Jean-loup Gailly et Mark Adler ont développé l’algorithme de compression GZIP dans le cadre du projet GNU. GZIP signifie GNU ZIP, reflétant ses origines au sein du projet GNU. L’objectif était de créer un outil de compression capable de réduire efficacement la taille des fichiers tout en maintenant la compatibilité entre différents systèmes informatiques.
Jean-loup Gailly et Mark Adler ont développé le programme comme une alternative gratuite à l’utilitaire de compression trouvé dans les premiers systèmes Unix. Il a été conçu pour faire partie du projet GNU, d’où le “g” dans gzip. La version initiale, la version 0.1, a été rendue publique le 31 octobre 1992, suivie de la version 1.0 en février 1993.

Structure GZIP

GZIP utilise l’algorithme DEFLATE, qui fusionne les techniques de codage LZ77 et Huffman. DEFLATE a été développé pour remplacer LZW et d’autres algorithmes de compression encombrés de brevets, ce qui limitait l’efficacité de la compression et des utilitaires d’archivage similaires répandus à cette époque. Le format de fichier GZIP suit une structure bien définie composée de trois parties principales:

  • En-tête (10 octets): Cette section fournit des informations essentielles sur l’archive et son contenu. Voici une répartition des données d’en-tête
  • Numéro magique (4 octets): Ceci identifie le fichier en tant qu’archive GZIP. Il a une valeur hexadécimale spécifique (1f 8b) reconnue par les outils de décompression.
  • Méthode de compression (1 octet): Cet octet contient généralement la valeur 8, indiquant l’algorithme de compression DEFLATE utilisé par GZIP.
  • Drapeaux d’en-tête (1 octet): Ces indicateurs contrôlent des aspects spécifiques de la décompression, tels que l’encodage du nom de fichier ou la présence d’un commentaire.
  • Heure de création (4 octets): Cette section stocke un horodatage Unix indiquant l’heure à laquelle l’archive a été créée.
  • CRC-32 (4 octets): Cette valeur de contrôle de redondance cyclique est utilisée pour la détection d’erreurs lors de la décompression. Il est calculé sur la base des données non compressées et permet au logiciel de décompression de vérifier l’intégrité des fichiers extraits.

Avantages de ce format

  • Compression sans perte: GZIP compresse les données sans aucune perte d’informations. Contrairement à certaines techniques de compression, les fichiers originaux peuvent être parfaitement reconstruits après décompression. Ceci est crucial pour les documents, images ou codes importants pour lesquels le maintien de l’intégrité des données est essentiel.
  • Large compatibilité: L’une des plus grandes forces de GZIP est son adoption généralisée. Il est pris en charge par la plupart des systèmes d’exploitation, des utilitaires d’archives (WinRAR, 7-Zip) et des serveurs Web. Cela garantit que vous pouvez facilement ouvrir les fichiers GZIP sur différentes plates-formes sans avoir besoin de logiciel spécifique. GZIP est également largement pris en charge sur divers systèmes d’exploitation, notamment les systèmes Unix, Linux, Windows et macOS. Cette compatibilité multiplateforme garantit que les fichiers compressés GZIP peuvent être créés et décompressés de manière transparente dans différents environnements.
  • Streamable Compression: GZIP prend en charge la compression de flux, permettant aux fichiers d’être compressés ou décompressés à la volée sans avoir besoin d’attendre que l’intégralité du fichier soit traitée. Cela le rend adapté aux scénarios dans lesquels les données sont générées ou transmises en continu, tels que les opérations de communication réseau et de sauvegarde de données.
  • Standard ouvert: GZIP est un standard ouvert et largement adopté pour la compression de fichiers, dont les spécifications sont accessibles au public. Cette ouverture encourage l’interopérabilité et la compatibilité entre les différentes applications et systèmes logiciels, favorisant un écosystème dynamique d’outils et de bibliothèques pour travailler avec des fichiers compressés GZIP. L’utilisation de GZIP est généralement simple. De nombreux outils et logiciels compressent ou décompressent automatiquement les fichiers dans ce format. De plus, le processus de décompression est efficace et nécessite un minimum de ressources.

Opérations prises en charge par les archives GZIP

Aspose.ZIP permet à l’utilisateur d’extraire une entrée particulière ou une archive entière. Pour Aspose.ZIP pour .NET Vous pouvez utiliser GzipArchiveClass pour ouvrir le fichier .gz, puis parcourir ses entrées, en les extrayant vers un emplacement souhaité. Pour Aspose.ZIP pour Java Approche similaire utilisant GzipArchive pour ouvrir le fichier .gz et extraire les entrées.

Fichier GZIP - Structure interne

L’archive GZIP est comme un paquet soigneusement emballé. Cela commence par un en-tête de 10 octets présentant le format et la méthode de compression. Le cœur réside dans la section des données compressées, réduites à l’aide d’algorithmes intelligents. Enfin, un pied de page de 8 octets vérifie l’intégrité des données avec des sommes de contrôle, garantissant ainsi que vos fichiers arrivent en toute sécurité après la décompression.

Fichier GZIP - Structure interne

Structure des archives internes

  • Métadonnées de fichier - Semblable à une archive tar, chaque fichier stocke des informations de base telles que l’heure de modification et les autorisations. Cependant, cette section est flexible et permet d’omettre ou d’inclure des détails supplémentaires tels que des listes de contrôle d’accès (ACL) ou des attributs étendus (EA) en fonction de vos besoins. Il est recommandé d’inclure une fonction de hachage puissante (comme SHA1) pour les fichiers normaux afin de garantir l’intégrité des données.
  • Flux de contenu multiples - Contrairement aux archives traditionnelles, les fichiers peuvent contenir plusieurs flux de données dans le fichier de données interne. Ceci est utile pour stocker les attributs étendus ou les branches de ressources associées au fichier.
  • En-têtes - Le fichier d’index interne contient les en-têtes de fichiers, reflétant ceux dispersés dans le fichier de données interne. Mais, lorsqu’ils sont stockés séparément, les en-têtes d’index doivent faire référence à la position de départ de leurs données correspondantes dans le fichier de données. De plus, les entrées de répertoire dans l’index répertorient les fichiers contenus et leurs décalages correspondants dans l’index de fichier interne.
  • Justification des métadonnées en double - Ce choix de conception garantit à la fois un streaming/décodage efficace des données et un accès aléatoire aux fichiers. De plus, les métadonnées se compressent bien, ce qui entraîne une surcharge de stockage minimale. Les tests montrent que les métadonnées occupent généralement moins de 0,3 % de l’espace de stockage, ce qui rend le compromis intéressant.
  • En-têtes de bloc - Les en-têtes de bloc, similaires au fichier externe, contiennent des informations sur la taille du bloc et une séquence d’identifiants unique.

Exemples d'utilisation de GZIP

L’API Aspose.ZIP permet d’extraire des archives dans vos applications sans avoir besoin d’autres applications tierces. L’API Aspose.ZIP fournit la classe GzipArchive pour fonctionner avec les archives GZIP.

GZIP with compress only single source via C#

Such archives like GZIP, LZ, BZIP2, XZ, Z do not support entries and can compress only single source. See samples with such a compression.

    using (FileStream source = File.Open("alice29.txt", FileMode.Open, FileAccess.Read))
    {
        using (GzipArchive archive = new GzipArchive())
        {
            archive.SetSource(source);
            archive.Save(«archive.gz);
        }
    }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Informations supplémentaires sur les archives GZIP

Les gens ont demandé

1. Qu’est-ce que GZIP ?

GZIP (archive zippée GNU) est un format de fichier populaire qui réduit la taille des fichiers pour faciliter le stockage et la transmission.

2. Comment la compression GZIP se compare-t-elle à d’autres formats comme ZIP ?

GZIP offre généralement des taux de compression plus élevés que ZIP, en particulier lors de la compression de fichiers texte. Cependant, les archives ZIP incluent souvent la prise en charge de plusieurs fichiers et répertoires, ce qui les rend plus polyvalentes pour regrouper plusieurs fichiers ensemble. .

3. GZIP peut-il compresser plusieurs fichiers en une seule archive ?

GZIP est conçu pour compresser un seul fichier, et non plusieurs fichiers ou répertoires. Cependant, il est courant d’utiliser des outils comme tar en combinaison avec GZIP pour créer une archive tar tar archive , puis compressez-le en utilisant GZIP pour créer un seul fichier compressé.