gzip is any of several software applications used for file compression and decompression. The term usually refers to the GNU Project's implementation of such a tool using Lempel-Ziv coding (LZ77), for which it stands for GNU zip. The program was created by Jean-Loup Gailly and Mark Adler as a free software replacement for the compress program used in early Unix systems, and intended for use by the Project. Version 0.1 was first publicly released on October 31, 1992, and version 1.0 followed in February 1993.
OpenBSD's version of gzip is actually the compress program, to which support for the gzip format was added in OpenBSD 3.4. The 'g' in this specific version stands for gratis.
FreeBSD, DragonFlyBSD and NetBSD use a BSD-licensed implementation instead of the GNU version; it is actually a command-line interface for zlib intended to be compatible with the GNU implementation's options. These implementations originally come from NetBSD, and supports decompression of bzip2 and Unix pack(1) format.
The “Content-Encoding”/"Accept-Encoding" and "Transfer-Encoding"/"TE" headers in HTTP/1.1 allow clients to optionally receive compressed HTTP responses and (less commonly) to send compressed requests. The specification for HTTP/1.1 (RFC 2616) specifies three compression methods: “gzip” (RFC 1952; the content wrapped in a gzip stream), “deflate” (RFC 1950; the content wrapped in a zlib-formatted stream), and "compress" (explained in RFC 2616 section 3.5 as 'The encoding format produced by the common UNIX file compression program "compress". This format is an adaptive Lempel-Ziv-Welch coding (LZW).'). Many client libraries, browsers, and server platforms (including Apache and Microsoft IIS) support gzip. Many agents also support deflate, although several important players incorrectly implement deflate support using the format specified by RFC 1951 instead of the correct format specified by RFC 1950 (which encapsulates RFC 1951). Notably, Internet Explorer versions 6, 7, and 8 report deflate support but do not actually accept RFC 1950 format, making actual use of deflate highly unusual. Many clients accept both RFC 1951 and RFC 1950-formatted data for the “deflate” compressed method, but a server has no way to detect whether a client will correctly handle RFC 1950 format.
Full article ▸