ZIP (định dạng tệp)

ZIP là một định dạng file lưu trữ hỗ trợ nén không mất dữ liệu. File ZIP có thể chứa một hoặc nhiều file hoặc thư mục có thể đã được nén. Định dạng ZIP cho phép một số thuật toán nén, mặc dù DEFLATE là phổ biến nhất. Định dạng này ban đầu được tạo vào năm 1989 và lần đầu tiên được triển khai trong tiện ích PKZIP của PKWARE, Inc., để thay thế cho định dạng nén ARC trước đó của Thom Henderson.Định dạng ZIP sau đó đã nhanh chóng được hỗ trợ bởi nhiều tiện ích phần mềm khác ngoài PKZIP. Microsoft đã đưa hỗ trợ ZIP tích hợp (dưới tên "compressed folders") vào các phiên bản Microsoft Windows kể từ năm 1998 thông qua tiện ích bổ sung "Plus! 98" cho Windows 98. Hỗ trợ gốc đã được thêm vào kể từ năm 2000 trong Windows ME. Apple đã đưa hỗ trợ ZIP tích hợp vào Mac OS X 10.3 (thông qua BOMArchiveHelper, bây giờ là Archive Utility) và mới hơn. Hầu hết các đều tích hợp hỗ trợ ZIP theo cách tương tự như Windows và macOS.

File ZIP thường sử dụng phần mở rộng tệp or và loại MIME . ZIP được nhiều chương trình sử dụng làm định dạng tệp cơ sở, thường dưới một tên khác. Khi điều hướng hệ thống file thông qua giao diện người dùng, các biểu tượng đồ họa đại diện cho tệp ZIP thường xuất hiện dưới dạng tài liệu hoặc đối tượng khác có biểu tượng khóa kéo nổi bật.

== Lịch sử ==
Định dạng tệp được thiết kế bởi Phil Katz của PKWARE và Gary Conway cả Infinity Design Concepts. Định dạng này được tạo ra sau khi Systems Enhancement Associates (SEA) đệ đơn kiện PKWARE với cáo buộc rằng các sản phẩm lưu trữ của công ty này, có tên là PKARC, là sản phẩm phái sinh của hệ thống lưu trữ ARC của SEA. Tên "zip" (có nghĩa là "di chuyển với tốc độ cao") được đề xuất bởi người bạn của Katz, Robert Mahoney. Họ muốn ngụ ý rằng sản phẩm của họ sẽ nhanh hơn ARC và các định dạng nén khác vào thời điểm đó. Bằng cách phân phối định dạng zip trong APPNOTE.TXT, khả năng tương thích với định dạng zip đã lan rộng trên Internet công cộng trong những năm 1990.

PKWARE và Infinity Design Concepts đã đưa ra thông cáo báo chí chung vào ngày 14 tháng 2 năm 1989, phát hành định dạng vào phạm vi công cộng.

=== Lịch sử phiên bản ===
The .ZIP File Format Specification has its own version number, which does not necessarily correspond to the version numbers for the PKZIP tool, especially with PKZIP 6 or later. At various times, PKWARE has added preliminary features that allow PKZIP products to extract archives using advanced features, but PKZIP products that create such archives are not made available until the next major release. Other companies or organizations support the PKWARE specifications at their own pace.

The .ZIP file format specification is formally named "APPNOTE - .ZIP File Format Specification" and it is published on the PKWARE.com website since the late 1990s. Several versions of the specification were not published. Specifications of some features such as compression, strong encryption specification and others were published by PKWARE a few years after their creation. The URL of the online specification was changed several times on the PKWARE website.

A summary of key advances in various versions of the PKWARE software and/or specification:

- 2.0: (1993) File entries can be compressed with and use traditional PKWARE encryption (ZipCrypto).
- 2.1: (1996) Deflate64 compression support (claimed in APPNOTE 6.1.0 published much later). APPNOTE may not have been published for 2.1.
- 2.5: PKWARE DCL Implode compression. APPNOTE may not have been published for 2.5.
- 2.5: Deflate64 compression support (claimed in later user manuals, e.g. in 2004.)
- 4.0: (2000) Deflate64 compression support (according to information provided by Jim Peterson, Chief Scientist, PKWARE, to the Library of Congress; and APPNOTE 4.0).
- 4.5: (2001) Documented 64-bit zip format.
- 4.6: (2001) BZIP2 compression (not published online until the publication of APPNOTE 5.2)
- 5.0: (2002) SES: , , , supported for encryption (not published online until the publication of APPNOTE 5.2)
- 5.2: (2003) AES encryption support for SES (defined in APPNOTE 5.1 that was not published online) and AES from WinZip ("AE-x"); corrected version of RC2-64 supported for SES encryption.
- 6.1: (2004) Documented certificate storage.
- 6.2.0: (2004) Documented Central Directory Encryption.
- 6.3.0: (2006) Documented Unicode () filename storage. Expanded list of supported compression algorithms (, ), encryption algorithms (, ), and hashes.
- 6.3.1: (2007) Corrected standard hash values for SHA-256/384/512.
- 6.3.2: (2007) Documented compression method 97 ().
- 6.3.3: (2012) Document formatting changes to facilitate referencing the PKWARE Application Note from other standards using methods such as the JTC 1 Referencing Explanatory Report (RER) as directed by JTC 1/SC 34 N 1621.
- 6.3.4: (2014) Updates the PKWARE, Inc. office address.
- 6.3.5: (2018) Documented compression methods 16, 96 and 99, DOS timestamp epoch and precision, added extra fields for keys and decryption, as well as typos and clarifications.
- 6.3.6: (2019) Corrected typographical error.
- 6.3.7: (2020) Added compression method ID 20.
- 6.3.8: (2020) Moved Zstandard compression method ID from 20 to 93, deprecating the former. Documented method IDs 94 and 95 ( and respectively).
- 6.3.9: (2020) Corrected a typo in Data Stream Alignment description.
- 6.3.10: (2022) Added several z/OS attribute values for APPENDIX B. Added several additional 3rd party Extra Field mappings.

, starting with version 12.1, uses the extension for ZIP files that use compression methods newer than DEFLATE; specifically, methods BZip, LZMA, PPMd, Jpeg and Wavpack. The last 2 are applied to appropriate file types when "Best method" compression is selected.

=== Chuẩn hóa ===
In April 2010, initiated a ballot to determine whether a project should be initiated to create an ISO/IEC International Standard format compatible with ZIP. The proposed project, entitled "Document Packaging", envisaged a ZIP-compatible 'minimal compressed archive format' suitable for use with a number of existing standards including , and . It would solve problems such as the need for a formal standard, the variety of extensions of ZIP, the undesirability of a technology used for potentially having proprietary extensions or "submarine" patents (i.e. which could surface unexpectedly), the need for better internationalization, and a desire not to actually fragment the technology further by purporting to provide an alternative specification to the PKWARE APPNOTE document.

In 2015, ISO/IEC 21320-1 "Document Container File — Part 1: Core" was published which states that "Document container files are conforming Zip files", normatively referencing the PKWARE APPNOTE document. It requires the following main restrictions of the ZIP file format:

- Files in ZIP archives may only be stored uncompressed, or using the "deflate" compression (i.e. compression method may contain the value "0" - stored or "8" - deflated). The patent on the core "deflate" compression method expired in late 2010.
- The encryption features are prohibited.
- The digital signature features (from SES) are prohibited.
- The "patched data" features (from PKPatchMaker) are prohibited.
- Archives may not span multiple volumes or be segmented.

== Di sản ==
Có nhiều tiêu chuẩn và định dạng khác sử dụng "zip" làm một phần tên của chúng. Ví dụ, zip khác với gzip, được định nghĩa trong IETF .Cả zip và gzip chủ yếu sử dụng thuật toán DEFLATE để nén. Tương tự như vậy, định dạng ZLIB (IETF ) cũng sử dụng thuật toán nén DEFLATE nhưng chỉ định các tiêu đề khác nhau để kiểm tra lỗi và tính nhất quán. Các định dạng và chương trình phổ biến khác có tên tương tự với các định dạng gốc khác nhau bao gồm 7-Zip, bzip2, and rzip.

== Quan tâm ==
Hệ số nén tối đa lý thuyết cho luồng DEFLATEthô là khoảng 1032 về một, nhưng bằng cách khai thác định dạng ZIP theo những cách không mong muốn, các kho lưu trữ ZIP có tỷ lệ nén là hàng tỷ về một có thể được xây dựng. Những quả bom zip này giải nén thành các kích thước cực lớn, làm quá tải dung lượng của máy tính mà chúng được giải nén.

== Xem thêm ==
- 7Z
- Rar

== Liên kết ngoài ==
- .ZIP Application Note landing page for PKWARE's current and historical .ZIP file
- ISO/IEC 21320-1:2015 — Document Container File — Part 1: Core
- Zip Files: History, Explanation and Implementation
- Shrink, Reduce, and Implode: The Legacy Zip Compression Methods
- APPNOTE.TXT mirror
- Structure of PKZip file Format specifications, graphical tables