为什么使用紧缩,而不是gzip文本文件由阿帕奇?
-
23-08-2019 - |
题
什么优势的做法提供html,css和javascript文件由一个灯服务器。是否有更好的选择吗?
服务器提供的信息的地图应用程序使用式,所以大量小的文件。
解决方案
为什么用放气,而不是gzip的由Apache的服务文本文件?
简单的回答是的不即可。
RFC 2616 定义为放气:
放气在RFC 1950中定义的组合与在RFC中描述的“放气”压缩机构的“ZLIB”格式1951
在ZLIB格式在 RFC 1950 所定义:
0 1
+---+---+
|CMF|FLG| (more-->)
+---+---+
0 1 2 3
+---+---+---+---+
| DICTID | (more-->)
+---+---+---+---+
+=====================+---+---+---+---+
|...compressed data...| ADLER32 |
+=====================+---+---+---+---+
所以,几头和一个ADLER32校验
RFC 2616 gzip的定义为:
gzip压缩由文件压缩程序产生的编码格式 如在RFC 1952 [25]中描述的 “gzip的”(GNU拉链)。这种格式是 的Lempel-Ziv编码(LZ77)配有一个32位的CRC。
RFC 1952 中的压缩的数据的定义是:
的格式目前使用的压缩方法DEFLATE,但可以容易地扩展到使用其它压缩方法。
CRC-32是比ADLER32
慢相比于相同长度的循环冗余校验,它为交易速度可靠性(宁愿后者)。
所以...我们有使用相同算法进行压缩2种压缩机制,但不同算法页眉和校验。
现在,底层的TCP数据包已经相当可靠,所以这里的问题不是阿德勒32 VS CRC-32 该GZIP使用。
原来,在实施了不正确的deflate算法的几年,许多浏览器。相反,在1950年RFC期待zlib的头,他们只是希望压缩的有效载荷。类似的各种web服务器犯同样的错误。
因此,在浏览器开始实施的模糊逻辑的年实施放气,他们尝试了zlib的头和阿德勒校验,如果失败,他们尝试的有效载荷。
具有这样的复杂的逻辑的结果是,它经常被破坏。神韵工作室有href="https://web.archive.org/web/20120321182910/http://www.vervestudios.co/projects/compression-tests/results" rel="nofollow noreferrer">用户部分,展示了形势有多么糟糕。
例如:放气的Safari 4.0的作品,但在Safari 5.1被打破,它也总是有IE的问题。
那么,做最好的事情是完全避免放气,未成年人的速度增加(由于阿德勒32)不值得断载荷的风险。
其他提示
GZip只是紧缩加上校验码头和/尾。放气 速度更快, 虽然,作为 我学到的困难的方式。
您可能不能够真正回暖放气作为一种选择。相反,你可以期望的 mod_deflate模块的没有使用放气,但gzip的。因此,尽管大多数提出的观点是有效的很可能是不相关的大多数。
我觉得有放气和gzip之间没有大的区别,因为gzip的基本上是就在放气裹头(见1951年的RFC和1952)。
的主要理由是,放气快于gzip和繁忙的服务器时可能会产生变化上进行编码。与静态页面这是一个不同的问题,因为他们可以很容易地被预先压缩一次。
mod_deflate模块需要在服务器上的资源更少,虽然你可能在压缩量方面支付一小笔罚款。
如果您正在为许多小文件,我建议基准测试和负载测试您的压缩和非压缩的解决方案 - 你可能会发现某些情况下启用压缩不会储蓄导致
有不应该在任何gzip的差&放气用于解压缩。 Gzip已只是几十个字节的头缠着包括校验和放气。校验和是较慢的压缩的原因。然而,当你预压缩的文件不计其数,你希望这些校验在你的文件系统完整性检查。此外,您可以使用命令行工具来获取有关文件的统计信息。对于我们的网站,我们预压一吨的静态数据(整个开放目录13000个游戏,自动完成数以百万计的关键字,等等),我们不是通过Alexa的网站快95%排名。 Faxo搜索。不过,我们利用本土专有的Web服务器。阿帕奇/ mod_deflate模块只是不削减它。当这些文件被压缩成文件系统中你不仅会受到打击与最小的文件系统的块大小,但在管理中的Web服务器并不十分关心文件系统的文件中所有不必要的开销您的文件。您的问题应该是总的磁盘占用和访问/解压缩时间,在能够得到这个数据预压的二次提速。因为即使磁盘空间是便宜,你要尽可能以适应高速缓存的占用是非常重要的。
在Ubuntu的与Apache2的和已经安装了放气模块(它是通过缺省值),则可以启用的放气 gzip的两个简单的步骤压缩:
a2enmod deflate
/etc/init.d/apache2 force-reload
和你离开!我发现我担任过我的ADSL连接的网页加载速度更快。
修改:强>作为每@ GertvandenBerg的评论,这使得gzip压缩,而不是放气
如果我没记错的话
- gzip 会比 deflate 压缩多一点
- 放气更有效