zOompfは、まさにこのトピックに関する非常に徹底的な調査を完了しました here 。以下の調査結果よりも優先されます。
背景情報については、GZIPおよびDEFLATE(zlib)のHTTP 1.1定義:
「「Gzip」はgzip形式であり、「deflate」はzlib形式です。生のdeflate圧縮データ形式との混同。HTTP1.1 RFC 2616は、「deflate」転送エンコーディングに関するRFC 1950のzlib仕様を正しく示していますが、サーバーとブラウザの報告があります。 RFC 1951のdeflate仕様に従って生のdeflateデータを誤って生成または予期している、最も顕著なのはMicrosoft製品です。 zlib形式を使用すると、より効率的なアプローチになります(および実際には正確にzlib形式が設計されたもの)、 'gzip'転送エンコーディングの使用は、HTTP 1.1の作者側の不幸な名前の選択により、おそらくより信頼性が高いでしょう。 " (ソース: http://www.gzip.org/zlib/zlib_faq.html )
だから、私の質問:zlibラッパーなしでRAWデフレートデータを送信する場合(またはgzip、それについて)、生のデフレートを理解できない最新のブラウザ(たとえば、IE6以上、FF、Chrome、Safariなど)圧縮データ(HTTP要求ヘッダー「Accept-Encoding」に「deflate」が含まれていると仮定)?
Deflateデータは常にGZIPよりも数バイト小さくなります。
これらすべてのブラウザーがデータを正常にデコードできる場合、zlibの代わりにRAW deflateを送信することのマイナス面は何ですか?
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は許可されません。
私は、常に送信rawDEFLATE(HTTPリクエストヘッダー「Accept-Encoding」には「deflate」が含まれています)、ブラウザはエンコードされたデータを正しく解釈できます。誰かがこれを間違っていると証明できますか?
注:DEFLATE(System.IO.Compression.DeflateStream)の.NETのネイティブ実装は、生のDEFLATEです。また、それは吸う。 .NETのすべてのデフレニーズに zlib.net を使用してください。
Android 1.6ブラウザ(v4)は、ページのzlibテストとdeflateテストの両方に失敗します。リストに追加しました。
AddOutputFilterByType DEFLATE
デフォルトでmod_deflateを使用してgzipで送信しますか?