- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这两种方法对于 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/
我在一个经常受到机器人网络攻击的网站工作。我们已经开始使用这个工具:http://deflate.medialayer.com/哪个自动禁止具有比设置值更多的开放连接的 ip。默认情况下它设置为 15
我看到一个奇怪的情况,Java 8u45 和 java.util.Deflater.deflate(byte[] b, int off, int len, int flush) 的输出缓冲区很小与小输
zlib docs指定可以将负的 windowBits 参数传递给 deflateInit2() 函数: windowBits can also be –8..–15 for raw deflate.
我写了一些 Javascript 代码。用base64压缩并放气 function base64 (str) { return new Buffer(str).toString("base64
在 Java 7 中,Deflater添加了对某些压缩参数的支持(模式:FULL_FLUSH、SYNC_FLUSH)。我猜他们对应的 Zlib 类似 constants在标准 API 中(虽然这个 A
我遇到了一些 zlib 压缩的不同实现之间不兼容的问题。 作为测试用例,我想创建具有 10000 个 double 的测试数据,范围从 0 到 10000。 我创建了一些测试代码来压缩和解压缩此数据,
我正在将一个 Python 应用程序移植到 Android,在某些时候,这个应用程序必须与 Web 服务通信,向它发送压缩数据。 为了做到这一点,它使用了下一个方法: def stuff(self,
我目前正在实现一个 png 阅读器,但我对数据的位顺序和一般格式感到困惑。 我无法访问 libpng、zlib 或类似软件。 请注意,我写的任何位串都是最高有效位在前。 根据 RFC1951 , "数
我目前正在实现一个 png 阅读器,但我对数据的位顺序和一般格式感到困惑。 我无法访问 libpng、zlib 或类似软件。 请注意,我写的任何位串都是最高有效位在前。 根据 RFC1951 , "数
我正在将大量对象保存到一个文件中,然后反序列化它们。生成的 xml 文件大小约为 3 gig。 我希望反序列化非常快,所以我尝试了所有三种方法(xml、二进制、压缩) 显然,反序列化压缩文件比 XML
这个问题在这里已经有了答案: Zlib deflated input is larger than original input string of chars? (3 个答案) 关闭 5 年前。
我目前正在尝试创建自定义 Deflate在 C# 中实现。 我目前正在尝试实现“模式搜索”部分,其中我有(最多)32k 的数据,并且正在尝试为我的输入搜索最长的可能模式。 RFC 1951定义 Def
我听到了关于MsgPack的一些信息,可用于压缩json消息,但是我对此有一个疑问,为什么不简单地使用Gzip / Deflate而不是MsgPack?我认为调试也更好。 最佳答案 msgpack是一
我花了大约 48 小时尝试解决 gzip deflate 问题,并意识到我可能需要寻求帮助,呵呵。 在意识到我需要在 php.ini 文件中打开压缩之后,我终于通过 .htaccess 在我的共享 U
让 zlib 在每个请求期间压缩网页似乎是多余的。这也是我的文件响应时间的瓶颈。有没有办法缓存 zlib 文件,以便每次修改时只压缩一次?还是我应该继续愿望? 最佳答案 如果您想要一个快速而懒惰的解决
我正在尝试找出如何禁用服务器上特定目录的 DEFLATE 模块(gzipping)。这是我在/etc/httpd/conf/httpd.conf 中的内容 AddOutputFilterByType
我正在开发一个文件压缩程序。我们目前正在实现 .ZIP 存档器标准,以便在生成压缩的 .ZIP 存档器时,任何其他信誉良好的压缩器(例如 7zip)都可以完美地理解/解压缩它。 我们现在正在开发基于R
我使用 Deflater 编写了一个备份程序SHA-1 用于存储文件和哈希值。我看到Java的Deflater使用zlib 。如果我显式设置 Deflater 的级别,无论平台和 JRE 版本如何,我
我想在保存到文件之前压缩字节数组。当我使用 Deflator 压缩字节数组时,出现 OutOfMemoryError: ERROR/dalvikvm-heap(16065): Out of memor
需要一些帮助来了解 DEFLATE 编码的工作原理。我知道这是 LZSS 算法和霍夫曼编码的组合。 因此,让我们编码例如“延迟放气”。参数:[Search buffer: 8kb and Look-a
我是一名优秀的程序员,十分优秀!