# ZIP (format de fichier)

Le ZIP est un format de fichier permettant l'archivage (utilisation d'un seul fichier pour stocker plusieurs fichiers) et la compression de données (diminution de l'espace occupé sur le support numérique) sans perte de qualité. On peut donc le comparer à la combinaison de tar (archivage) et gzip (compression) dans le cadre d'une archive compressée .tgz.

## Historique

Le format a été inventé par Phil Katz pour le logiciel PKZIP. Il a été conçu en réponse à un problème de droits entre le programme PKARC et le format ARC lancé par la Software Enhancement Associates. ARC est vendu en tant que partagiciel principalement aux utilisateurs de BBS afin qu'ils puissent compresser leurs fichiers plus rapidement.
Katz décida de cesser le développement de PKARC et décrivit son propre format PKZIP utilisant l'extension de fichier .zip et l'algorithme deflate.
La version 6.3.0 (2006) a documenté l'enregistrement de noms unicode de fichier (UTF-8), en augmentant la liste des fonctionnalités supportées.
La dernière version est la 6.3.10, datant du 1er novembre 2022.

### Normalisation

En octobre 2015, l'ISO et la CEI publiaient la norme ISO/IEC 21320-1 « Fichier conteneur de document -- Partie 1: Données de base », élaborée par leur JTC1.
Cette première version de la norme s'appuie sur la version 6.3.3 de PKZIP (datant de 2012), en y apportant des limitations détaillées dans la norme (ex.: le chiffrement de fichiers contenus dans une archive ZIP est interdit).
L'introduction de la norme précise que le format ZIP est largement utilisé depuis plus de vingt ans et que sa spécification est publique depuis presque aussi longtemps, mais qu'aucune normalisation formelle n'existait, ce qui pouvait poser des difficultés (stabilité du format de référence...) pour les normes souhaitant se référer à ce format. La norme ISO/IEC 21320-1 apporte donc une réponse à ces difficultés.
À noter : cette norme est disponible librement (en anglais uniquement) avec d'autres normes élaborées par le JTC1.

## Format

Un fichier ZIP est une archive de fichiers compressés individuellement. Cela signifie qu'il n'est pas nécessaire de décompresser toute l'archive pour extraire un fichier. La position de chaque fichier, ainsi que son nombre d'octets et d'autres informations sont disponibles dans le répertoire situé en fin de fichier. Ce format permet de supprimer et d'ajouter des fichiers de manière incrémentale, le répertoire étant décalé après les nouveaux fichiers.

## Évolutions

Le format JAR (Java Archive), l'ODT (OpenDocument) et l'Open XML (OOXML) sont basés sur le format ZIP.
Le format ZIP64 a été introduit par PKWARE, dans la version 4.5 de la spécification ZIP, pour contourner la limitation de taille de fichier de 4 Go de la spécification initiale.

## Interopérabilité

Le format de fichier ZIP peut poser des problèmes d'interopérabilité au niveau des noms de fichiers contenant des caractères autres que des caractères latins non accentués, notamment lorsque des plateformes différentes Windows-Linux sont utilisées et/ou dans des régions utilisant des paramètres de localisation différents.

## Programmes de décompression

Le système d'exploitation Microsoft Windows, depuis la version Millennium Edition, peut gérer les fichiers ZIP de façon transparente via la fonction « Dossier compressé ». De même, beaucoup de gestionnaires de fichiers sous Linux savent le faire sous KDE, Xfce, Gnome, etc. Exemple :
Un très grand nombre de programmes savent effectuer la compression et la décompression des fichiers, tant des programmes autonomes qu'en intégration à un gestionnaire de fichiers, sous tous les systèmes d'exploitation.
Le leader du marché sous Microsoft Windows a longtemps été WinZip (shareware), mais de nombreux logiciels multiformats, souvent libres, comme PeaZip ou 7-Zip, savent l'exploiter, tant en lecture qu'en écriture. Sous Linux, le choix est plus large que ce soit en ligne de commande ou sous forme graphique.
L'utilisation de ZIP comme format d'échange entre différents systèmes d'exploitation n'est pas toujours recommandée, particulièrement si les différents environnements n'utilisent pas le même encodage de caractères pour les noms des fichiers (lui préférer le format 7z, xZ ou d'autres formats plus récents dans ce cas).
Le fait de pouvoir extraire les fichiers par un programme de décompression ne préjuge pas de la possibilité de lire le contenu, qui nécessite la disposition d'un logiciel dépendant du type de fichier extrait.
Le programme de bureautique OpenOffice.org/LibreOffice contient son propre décompresseur, ce qui rend les opérations de désarchivage/décompression et inverses totalement transparentes. Dans le cas où l'on voudrait étudier le contenu d'un document ODF, il suffit de changer son extension en .zip (sous la plupart des systèmes d'exploitations), et de le décomprimer avec n'importe quel décompresseur. C'est une manière simple de récupérer, par exemple, les images contenues dans un document texte.

## Sécurité

Dues aux ambiguïtés de la spécification du format ZIP, un fichier ZIP peut être modifié afin de créer un fichier polyglot, notamment avec les formats PDF et PNG.