放气过GZIP压缩浏览器兼容性和优点(Deflate compression browser com

2019-08-18 13:32发布


UPDATE 2012年2月10日:

zOompf已经完成了这个题目了一些非常深入的研究在这里 。 它胜过任何低于调查结果。


UPDATE 2010年9月11日:

一个测试平台已经为此创建这里




HTTP 1.1 GZIP和DEFLATE(ZLIB)对于一些背景信息的定义:

“‘Gzip已’是gzip格式,而‘放气’是zlib的格式 。他们应该可能已经被称为第二个‘zlib的’,而不是为了避免与压缩后的数据格式的原始放气的混乱。虽然HTTP 1.1 RFC 2616正确地指向在RFC 1950年zlib的规格为“放气”传输编码, 已经有服务器和浏览器错误地产生或期望在RFC 1951年, 最明显的是微软的产品 。因此,即使“放气” 每放气规范原料放气数据的报告使用zlib格式转换编码将是更有效的方法( 事实上正是zlib的格式是专为 ),使用“gzip的”传输编码可能是更可靠的,由于在HTTP的一部分不幸的选择名称1.1作家“。 (来源: http://www.gzip.org/zlib/zlib_faq.html )

所以,我的问题:如果我送,没有zlib的包装(或gzip的,对于这个问题)RAW放气的数据是否有任何现代浏览器(如IE6及以上,FF,Chrome浏览器,Safari浏览器等)是无法理解的原料放气压缩数据(假设HTTP请求报头“的Accept-Encoding”包含“放气”)?

紧缩的数据往往会出现几个字节比gzip小。

如果所有这些浏览器都可以成功解码的数据,有什么缺点在那里发送RAW放气代替的zlib?



UPDATE 2010年9月11日:

一个测试平台已经为此创建这里

Answer 1:

UPDATE:浏览器已经下降为原料放气的支持。 zOompf已经完成了这个题目了一些非常深入的研究在这里 。 不幸的是,似乎生放气是不是安全使用。


检查http://www.vervestudios.co/projects/compression-tests/results更多的结果。

这里是已测试的浏览器:

/*  Browser                       DEFLATE      ZLIB     */
    XP Internet Explorer 6        PASS         FAIL
    XP Internet Explorer 7        PASS         FAIL
    XP Internet Explorer 8        PASS         FAIL
    Vista Internet Explorer 8     PASS         FAIL
    XP Firefox 3.6.*              PASS         PASS
    XP Firefox 3.5.3              PASS         PASS
    XP Firefox 3.0.14             PASS         PASS
    Win 7 Firefox 3.6.*           PASS         PASS
    Vista Firefox 3.6.*           PASS         PASS
    Vista Firefox 3.5.3           PASS         PASS
    XP Safari 3                   PASS         PASS
    XP Safari 4                   PASS         PASS     
    XP Chrome 3.0.195.27          PASS         PASS
    XP Opera 9                    PASS         PASS
    XP Opera 10                   PASS         PASS
    XP Sea Monkey 1.1.8           PASS         PASS
    Android 1.6 Browser (v4)*     N/A          N/A
    OS-X Safari 4                 PASS         PASS
    OS X Chrome 7.0.517.44        PASS         PASS
    OS X Opera 10.63              PASS         PASS
    iPhone 3.1 Safari             PASS         PASS

*的Android发送HTTP请求头“的Accept-Encoding:gzip的”。 放气是不允许的。


我的结论是,我们总是可以发送原始 DEFLATE(当HTTP请求头“的Accept-Encoding”包含“放气”)和浏览器就能正确地解释编码数据。 有人可以证明这错了吗?

注意:.NET的DEFLATE(System.IO.Compression.DeflateStream)的本机实现是原始缩小。 它也很烂。 请使用zlib.net您所有的.NET放气需求。



Answer 2:

而Android 1.6的浏览器(V4)失败既zlib的和你的页面上的放气试验。 我已经将其添加到列表中。



Answer 3:

是不是它的情况是AddOutputFilterByType DEFLATE使用mod_deflate模块发送由gzip的默认?



Answer 4:

据我所知,是的 - 几乎你“可以随时发送原始DEFLATE,一切会好起来” ......没有“总是”,但大多数的所有案件。 如果不是,这是浏览器的问题。



文章来源: Deflate compression browser compatibility and advantages over GZIP