[解決済み] Deflate圧縮のブラウザ互換性とGZIPに対する優位性
質問
2012年2月10日に更新されました。
zOompfは、このトピックに関する非常に徹底的な調査を完了しました。
ここで
. それは以下のどんな調査結果にも勝るものです。
2010年9月11日に更新されました。
このためにテスト・プラットフォームが作成されました はこちら
HTTP 1.1 の GZIP と DEFLATE (zlib) の定義についての背景情報です。
" 'Gzip' は gzip フォーマットであり deflate' は zlib フォーマットです。 . 彼らは おそらく、2番目のものを「zlib」と呼んで、生のdeflate圧縮データ形式との混同を避けるべきだったのでしょう。 生のdeflate圧縮データ形式との混同を避けるためです。HTTP 1.1 RFC 2616 は、RFC 1950 の zlib 仕様を 'deflate' 転送エンコーディングとして正しく指し示しています。 の zlib 仕様を指しています。 の報告があります。 サーバやブラウザが誤って生の deflate データを生成したり、期待したりすることが報告されています。 のデータを生成したり期待したりするサーバやブラウザがあるという報告があります。 特に マイクロソフト製品 . そのため、zlib 形式を使用した 'deflate' 転送エンコーディングがより効率的なアプローチであるにもかかわらず zlib フォーマットを使用した「deflate」転送エンコーディングは、より効率的なアプローチであるにもかかわらず ( であり、実際まさに zlib フォーマットは何のために設計されたのか のために設計されたものです)、 'gzip' 転送エンコーディングの使用は、不幸なことに エンコーディングの使用は、HTTP 1.1 作者側の不幸な名前の選択により、おそらくより信頼できるものです。 HTTP 1.1 の著者の一部である "(ソースはこちら。 http://www.gzip.org/zlib/zlib_faq.html )
そこで質問ですが、もし私がzlibラッパーを使わずにRAWのdeflateデータを送った場合(あるいはgzipを使った場合。 を使用しない場合、最新のブラウザ (たとえば、IE6 以降、FF、Chrome、Safari など) で生の deflate データを理解できないものはあるのでしょうか? Chrome, Safari, etc)で、生のデフレート圧縮データを理解できないものはありますか? 圧縮されたデータ (HTTP リクエスト ヘッダー "Accept-Encoding" が "deflate" を含むと仮定して) を理解できないモダンなブラウザはありますか?
デフレート データは、常に GZIP よりも数バイト小さくなります。
これらのすべてのブラウザがデータを正常にデコードできるのであれば、zlibではなくRAWのdeflateを送信することのデメリットは何でしょうか? zlib の代わりに RAW deflate を送信することの欠点は何でしょうか?
2010年9月11日に更新されました。
このためにテスト・プラットフォームが作成されました はこちら
どのように解決するのですか?
UPDATE: ブラウザは生の deflate のサポートを停止しています。zOompf はこのトピックに関する非常に徹底した調査を完了しました。 はこちら . 残念ながら、生の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は許可されていません。
という結論になります。
を送ることができます。
生
デフレート
(HTTPリクエストヘッダ "Accept-Encoding" が "deflate" を含む場合) で、ブラウザはエンコードされたデータを正しく解釈することができます。誰かがこれが間違っていることを証明できますか?
注: .NETのDEFLATEのネイティブ実装(System.IO.Compression.DeflateStream)は、生のDEFLATEです。これも最悪です。以下のものを使用してください。
zlib.net
を使ってください。
関連
-
[解決済み] コピーオンライトとは何ですか?
-
[解決済み] CPUバウンド」「I/Oバウンド」とは、どのような意味ですか?
-
[解決済み】zlib、gzip、zipはどのように関係していますか?これらの共通点と相違点は何ですか?
-
[解決済み】Apacheで提供されるテキストファイルにgzipの代わりにdeflateを使用するのはなぜですか?
-
[解決済み] GHCはどのような最適化を確実に実行することが期待できますか?
-
[解決済み] 本番用Webアプリケーションの1秒あたりの「平均」リクエスト数は?
-
[解決済み] ロガー slf4j 文字列の連結の代わりに{}でフォーマットすることの利点
-
[解決済み] VBAコードの実行時間をどのようにテストしますか?
-
[解決済み] prefetchPlugin と analyse ツールを使って webpack のビルド時間を最適化するには?
-
[解決済み] GCC: marchとmtuneはどう違うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] CPUバウンド」「I/Oバウンド」とは、どのような意味ですか?
-
[解決済み] GHCはどのような最適化を確実に実行することが期待できますか?
-
[解決済み] 本番用Webアプリケーションの1秒あたりの「平均」リクエスト数は?
-
[解決済み] linkタグやscriptタグでCSSやJavaScriptのURLに"?v=1 "を付加すると、どのような効果がありますか?
-
[解決済み] なぜJava APIはshortやbyteの代わりにintを使うのですか?
-
[解決済み] ロガー slf4j 文字列の連結の代わりに{}でフォーマットすることの利点
-
[解決済み] JPEG最適化のためのツール?[クローズド]
-
[解決済み] VBAコードの実行時間をどのようにテストしますか?
-
[解決済み] prefetchPlugin と analyse ツールを使って webpack のビルド時間を最適化するには?
-
[解決済み] GCC: marchとmtuneはどう違うのですか?