- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
zlib 中使用的压缩算法与 gzip 和 zip 中的压缩算法基本相同。什么是 gzip 和 zip?它们有何不同,又有何相同之处?
最佳答案
简写:
.zip
is an archive format通常使用 Deflate compression method . .gz
gzip format用于单个文件,也使用 Deflate 压缩方法。 gzip 通常与 tar to make a compressed archive format 结合使用, .tar.gz
. zlib library提供供 zip、gzip、png 使用的 Deflate 压缩和解压代码(在放气数据上使用 zlib wrapper)和许多其他应用程序。
长表:
ZIP format由 Phil Katz 开发为具有开放规范的开放格式,他的实现 PKZIP 是共享软件。它是一种存档格式,用于存储文件及其目录结构,其中每个文件都被单独压缩。文件类型为 .zip
.可以选择对文件以及目录结构进行加密。
ZIP 格式支持多种压缩方法:
0 - The file is stored (no compression)
1 - The file is Shrunk
2 - The file is Reduced with compression factor 1
3 - The file is Reduced with compression factor 2
4 - The file is Reduced with compression factor 3
5 - The file is Reduced with compression factor 4
6 - The file is Imploded
7 - Reserved for Tokenizing compression algorithm
8 - The file is Deflated
9 - Enhanced Deflating using Deflate64(tm)
10 - PKWARE Data Compression Library Imploding (old IBM TERSE)
11 - Reserved by PKWARE
12 - File is compressed using BZIP2 algorithm
13 - Reserved by PKWARE
14 - LZMA
15 - Reserved by PKWARE
16 - IBM z/OS CMPSC Compression
17 - Reserved by PKWARE
18 - File is compressed using IBM TERSE (new)
19 - IBM LZ77 z Architecture
20 - deprecated (use method 93 for zstd)
93 - Zstandard (zstd) Compression
94 - MP3 Compression
95 - XZ Compression
96 - JPEG variant
97 - WavPack compressed data
98 - PPMd version I, Rev 1
99 - AE-x encryption marker (see APPENDIX E)
方法 1 到 7 是历史方法,未使用。方法 9 到 98 是相对较新的补充,并且使用量不同,使用量很小。在 ZIP 格式中真正广泛使用的唯一方法是方法 8,
Deflate ,以及在更小范围内的方法 0,它根本没有压缩。几乎每个
.zip
您将在野外遇到的文件将只使用方法 8 和 0,可能只是方法 8。(方法 8 还具有一种无需压缩和相对较少扩展即可有效存储数据的方法,并且方法 0 无法流式传输,而方法8个都可以。)
zip
的可移植、免费、开源实现和
unzip
实用程序,支持使用 Deflate 格式进行压缩,以及对该格式和早期格式的解压缩。这大大扩展了
.zip
的用途格式。
compress
utility 的替代品,源自 Info-ZIP 实用程序中的 Deflate 代码。 Unix
compress
旨在压缩单个文件或流,附加
.Z
到文件名。
compress
使用
LZW compression algorithm ,当时正在申请专利,其免费使用受到专利持有人的争议。虽然某些 Deflate 的具体实现已获得 Phil Katz 的专利,但格式不是,因此可以编写不侵犯任何专利的 Deflate 实现。在过去的 20 多年里,这种实现并没有受到如此大的挑战。 Unix
gzip
实用程序旨在替代
compress
,实际上是能够解压
compress
- 压缩数据(假设您能够解析该句子)。
gzip
附加一个
.gz
到文件名。
gzip
使用 Deflate 压缩数据格式,它的压缩比 Unix 好很多
compress
,解压速度非常快,并添加了 CRC-32 作为数据的完整性检查。标题格式还允许存储比
compress
更多的信息。允许的格式,例如原始文件名和文件修改时间。
compress
仅压缩单个文件,通常使用
tar
实用程序将文件、它们的属性和它们的目录结构归档到单个
.tar
中。文件,然后用
compress
压缩它制作
.tar.Z
文件。事实上,
tar
实用程序曾经并且仍然可以选择同时进行压缩,而不必通过管道传输
tar
的输出至
compress
.这一切都延续到了 gzip 格式,而
tar
可以选择直接压缩到
.tar.gz
格式。
tar.gz
格式比
.zip
压缩得更好办法,由于压缩了一个
.tar
可以利用跨文件的冗余,尤其是许多小文件。
.tar.gz
由于其非常高的可移植性,它是 Unix 上使用的最常见的存档格式,但也有更有效的压缩方法在使用,因此您经常会看到
.tar.bz2
和
.tar.xz
文件。
.tar
,
.zip
最后有一个中央目录,提供内容列表。那和单独的压缩提供了对
.zip
中各个条目的随机访问。文件。一个
.tar
文件必须从头到尾解压缩和扫描才能建立目录,这就是
.tar
文件被列出。
.gif
的免费使用提出了质疑。图像格式,在公告板和万维网上非常广泛地使用(当时是一个新事物)。于是一小群人创建了PNG无损压缩图像格式,文件类型
.png
, 替换
.gif
.该格式还使用 Deflate 格式进行压缩,在图像数据上的过滤器暴露更多冗余之后应用该格式。为了促进 PNG 格式的广泛使用,创建了两个免费的代码库。
libpng和
zlib . libpng 处理了 PNG 格式的所有功能,zlib 提供了供 libpng 以及其他应用程序使用的压缩和解压缩代码。 zlib 改编自
gzip
代码。
.zip
的程序使用原始 deflate。格式,这是另一种包装压缩数据的格式。
Content-Encoding: deflate
意味着
deflate compression method wrapped inside the zlib data format .
关于compression - zlib、gzip 和 zip 有什么关系?它们有什么共同点,又有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20762094/
我正在尝试创建有效的 gzip 文件(可以使用标准 Linux gzip 解压缩),其中的数据使用 DEFLATE 算法和静态/预设字典编码。 我已阅读 DEFLATE 的两个规范和 gzip ,而且
我刚刚搜索了gzip和 Deflate ,并发现 Deflate 更好。 GZip or Deflate for HTTP compression Why use deflate instead of
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求提供代码的问题必须表现出对所解决问题的最低限度的了解。包括尝试的解决方案、为什么它们不起作用以及预期结果
我一直在寻找 Gzip 是否支持多部分文件压缩。 From what I have seen so far it does not, but how come 7z allows multipart
我可以连接两个已经 gzip 的文件(使用 gzip)然后用枪压缩它们吗? 截至今天,我从远程服务器下载 gzip 压缩文件,单独对其进行 gunzip,然后将它们合并。 希望通过合并 gzipped
我正在创建两个 gzip 文件,一个只包含一个 gzip 成员,而第二个包含 2 个 gzip 成员(两个文件连接成一个 gzip 文件)。 当我尝试通过网络服务器下载此文件时,chrome 会很好地
当我对文件夹进行去皮重和 gzip 压缩时,每次我都会得到不同的文件大小。 目录内容不变,没有变化。压缩后的文件大小变化 20 到 100 字节。这是正常行为吗? 我的数据会受到影响吗? 谢谢 最佳答
比方说 file.txt.gz有 2GB,我想看到最后 100 行左右。 zcat
我一直听说对您的网站进行 gzip 压缩是加快交付速度的良好做法。我的网站总体负载非常大,我还应该研究 gzip 吗?我还了解了使用 gzip 的缺点,例如解压缩内容以便浏览器显示所需的时间。这是真的
下载 jQuery 的生产副本时,链接旁边显示该文件为 32K Minified & Gzipped。我得到了 Minified,但是 Gzipped 是什么意思? 它是否被网络服务器压缩,如 Apa
我的网站很高兴根据以下内容进行 Gzip 压缩: http://www.gidnetwork.com/tools/gzip-test.php 但是,当我通过 Yslow 运行它时,我得到了 Gzip
我使用命令 tar 一组文件:tar -czvf file.tar.gz file/ 然后复制到 USB(ext4 格式),我检查了我可以解压它。重装系统后,挂载usb时发生了一些错误,我执行fsck
我有一个提供小部件的网络服务。为了可扩展性,我想在 Amazon S3 上保留 js 文件的 gzip 版本。问题是不能接受 gzip 文件的浏览器将不会被提供。 任何人都知道我在哪里可以找到统计数据
我正在使用 Chrome 和 Firefox 下的 Yslow 工具查看我的开发站点,其中一项建议是我对适当的内容进行 gzip。作为起点,我刚刚在我的 [/] 配置中添加了“tools.gzip.o
我正在开发一个网站,我正在使用 gzip.exe 来预压缩 css 和 js 文件(只有 1 个 css 文件从 4.53 KB 到 1.50 KB,还有一个 js 文件包含 jquery 和一些来自
我们必须使用什么类型的响应监听器来处理 Android Volley 的 gzip 响应? 如果使用 String 监听器,则响应似乎会丢失其编码。 你如何使用 Volley 处理 gzip 响应?
我用 Fiddler调试我的应用程序。每当响应被服务器压缩,而不是解压缩响应时,Fiddler 显示不可读的二进制数据: /* Response to my request (POST) */ HTT
我通常使用tar zcvf压缩并使用tar zxvf解压缩(由于习惯使用gzip)。 我最近购买了一个具有超线程功能的四核 CPU,因此我有 8 个逻辑核心,并且我注意到许多核心在压缩/解压缩期间未使
我正在使用 Google Cloud Storage 控制台上传文件。我没有使用任何命令行工具。 我想在元数据中将 Content-Encoding 设置为 gzip(-z 选项)。 请看下面的截图,
我正在将mysqldump的结果用管道传输到gzip,gzip的速度似乎大大落后 gzip: 34.9MiB 0:01:54 [ 218kiB/s] mysqldump: 735MiB 0:01:5
我是一名优秀的程序员,十分优秀!