gpt4 book ai didi

apache - 为什么对 Apache 提供的文本文件使用 deflate 而不是 gzip?

转载 作者:行者123 更新时间:2023-12-03 04:09:37 24 4
gpt4 key购买 nike

这两种方法对于 LAMP 服务器提供的 html、css 和 javascript 文件都有哪些优势。有更好的选择吗?

服务器使用 Json 向 map 应用程序提供信息,因此会产生大量小文件。

另请参阅 Is there any performance hit involved in choosing gzip over deflate for http compression?

最佳答案

Why use deflate instead of gzip for text files served by Apache?

简单的答案是不要

<小时/>

RFC 2616将 deflate 定义为:

deflate The "zlib" format defined in RFC 1950 in combination with the "deflate" compression mechanism described in RFC 1951

zlib 格式定义于 RFC 1950如:

     0   1
+---+---+
|CMF|FLG| (more-->)
+---+---+

0 1 2 3
+---+---+---+---+
| DICTID | (more-->)
+---+---+---+---+

+=====================+---+---+---+---+
|...compressed data...| ADLER32 |
+=====================+---+---+---+---+

所以,一些 header 和 ADLER32 校验和

RFC 2616 将 gzip 定义为:

gzip An encoding format produced by the file compression program "gzip" (GNU zip) as described in RFC 1952 [25]. This format is a Lempel-Ziv coding (LZ77) with a 32 bit CRC.

RFC 1952将压缩数据定义为:

The format presently uses the DEFLATE method of compression but can be easily extended to use other compression methods.

CRC-32 是 slower than ADLER32

Compared to a cyclic redundancy check of the same length, it trades reliability for speed (preferring the latter).

所以...我们有 2 种压缩机制,它们使用相同算法进行压缩,但使用不同 header 和校验和算法。

现在,底层的TCP数据包已经是pretty reliable ,所以这里的问题不是 Adler 32 与 CRC-32 GZIP 使用的。

<小时/>

事实证明,多年来许多浏览器都实现了不正确的 deflate 算法。他们没有期待 RFC 1950 中的 zlib header ,而是只期待压缩的有效负载。同样,各种网络服务器也犯了同样的错误。

因此,多年来浏览器开始实现模糊逻辑 deflate 实现,它们尝试 zlib header 和 adler 校验和,如果失败,它们会尝试有效负载。

像这样复杂的逻辑的结果是它经常被破坏。 Verve Studio 有 user contributed test显示情况有多糟糕的部分。

例如:deflate 在 Safari 4.0 中可以工作,但在 Safari 5.1 中无法正常工作,并且在 IE 上也始终存在问题。

<小时/>

因此,最好的办法是完全避免放气,轻微的速度提升(由于 adler 32)不值得冒损坏有效载荷的风险。

关于apache - 为什么对 Apache 提供的文本文件使用 deflate 而不是 gzip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/388595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com