这两种方法对于由LAMP服务器提供的HTML、CSS和JavaScript文件有什么优势?是否有更好的替代方案?
该服务器使用Json向地图应用程序提供信息,因此存在大量小文件。
这两种方法对于由LAMP服务器提供的HTML、CSS和JavaScript文件有什么优势?是否有更好的替代方案?
该服务器使用Json向地图应用程序提供信息,因此存在大量小文件。
RFC 2616将deflate定义为:
deflate是RFC 1951中描述的"deflate"压缩机制与RFC 1950中定义的"zlib"格式相结合的结果。
RFC 1950中定义了zlib格式:
0 1
+---+---+
|CMF|FLG| (more-->)
+---+---+
0 1 2 3
+---+---+---+---+
| DICTID | (more-->)
+---+---+---+---+
+=====================+---+---+---+---+
|...compressed data...| ADLER32 |
+=====================+---+---+---+---+
因此,一些标题和ADLER32校验和
RFC 2616将gzip定义为:
gzip是由文件压缩程序“gzip”(GNU zip)生成的编码格式,如RFC 1952 [25]中所述。该格式是使用Lempel-Ziv编码(LZ77)和32位CRC的。
RFC 1952将压缩数据定义为:
目前,该格式使用DEFLATE压缩方法,但可以轻松扩展以使用其他压缩方法。
CRC-32比ADLER32更慢
与相同长度的循环冗余校验相比,它为速度(而非可靠性)而交换可靠性。
所以...我们有两种使用相同压缩算法的压缩机制,但使用不同的头部和校验算法。
现在,底层的TCP数据包已经非常可靠, 所以这里的问题并不是Adler 32与GZIP使用的CRC-32之间的比较。GZip 就是 Deflate 加上校验和、头部和尾部。然而 Deflate 更快,正如我曾经吃过的亏。
(来源: typepad.com)
您可能无法实际选择deflate作为选项。与您可能期望的相反,mod_deflate并不使用deflate,而是使用gzip。因此,尽管大多数观点都是有效的,但它可能对大多数人无关紧要。
我认为deflate和gzip之间没有太大的区别,因为gzip基本上只是在deflate的基础上添加了一个头部(请参阅RFC 1951和1952)。
mod_deflate可以减少服务器资源的使用,但是在压缩量方面可能会有一些小的性能损失。
如果您正在提供许多小文件,则建议对压缩和非压缩解决方案进行基准测试和负载测试-您可能会发现某些情况下启用压缩不会节省空间。
解压缩gzip和deflate没有任何区别。gzip实际上只是在deflate周围包装了几十个字节的头,其中包括校验和。这个校验和是导致压缩速度变慢的原因。然而,当你预压缩数以百万计的文件时,你想要这些校验和作为文件系统的检查。此外,你可以利用命令行工具来获取文件的统计数据。对于我们的网站,我们预压缩了大量的静态数据(整个开放目录,13000个游戏,数百万个关键词的自动完成等),我们排名得到了Alexa网站95%以上的快速访问。Faxo搜索。然而,我们使用了一个自主研发的专有Web服务器。Apache/mod_deflate并不能满足我们的需求。当这些文件被压缩到文件系统中时,不仅会因为最小文件系统块大小而受到影响,还会产生所有无关紧要的管理文件的额外开销,而这些开销对于Web服务器来说毫不重要。你应该关注的是总磁盘占用空间和存取/解压缩时间,其次是能够快速获取这些预压缩数据的速度。磁盘占用空间很重要,因为尽管磁盘空间很便宜,但你希望尽可能多地将其放入缓存中。
a2enmod deflate
/etc/init.d/apache2 force-reload
完成了!我发现通过我的adsl连接提供的页面加载速度更快。
编辑:根据@GertvandenBerg的评论,这启用了gzip压缩,而不是deflate。
如果我没记错的话