6

編集問題は実際にはphp minifyであることがわかりました。これは、Apache の代わりに圧縮されたコンテンツを送信していました。私はこれについてもっと見つけるでしょう。

High Performance Web Sitesによると、次の行を追加して Apache 2.x で mod_deflate を有効にすると、gzip された/delfated コンテンツが送信されるはずです: -

AddOutputFilterByType DEFLATE text/html text/css application/x-javascript

その本はまた、それgzipがより効果的であると述べていdeflateます.

同じ行を追加して、httpd.conf で有効にしました。しかし、Apache はContent-Encoding: deflate.

以下を使用してCURLでテストしました: -

curl -i -H "Accept-Encoding: gzip" "http://192.168.1.33/s.js" >> e:\curl_log.txt

「gzip された」コンテンツを返します。しかし、コマンドを送信すると: -

curl -i -H "Accept-Encoding: gzip, deflate" "http://192.168.1.33/s.js" >> e:\curl_log.txt

「収縮した」コンテンツを返します。

そのため、ブラウザーが deflated と gzipped の両方をサポートしている場合、Apache は deflated を送信します。deflate よりも gzip を優先するように Apache に指示する方法は?

ご参考までに: -

  • http://httpd.apache.org/docs/2.0/mod/mod_deflate.htmlで何も見つかりませんでし た。
  • Apache conf に no-gzip はありません。
  • サーバー: Apache/2.2.9 (Win32) PHP/5.2.6
  • FF はリクエスト ヘッダーを次のように送信します: "Accept-Encoding: gzip, deflate"
4

3 に答える 3

2

私が見るように、原因はすでに発見されています。起こりうる混乱から抜け出すための支援をさらに進めるには:

  • その名前にもかかわらず、mod_deflateは現在gzipのみをサポートしています。

  • gzipは、次の理由でより「効果的」です

deflate-その名前にもかかわらず、RFC 2616で説明されているように(deflate圧縮(RFC 1951)と組み合わせて)zlib圧縮(RFC 1950)を使用する必要があります。ただし、現実の世界での実装は、zlib圧縮と(生)圧縮を収縮させます[3][4]。この混乱のため、gzipはより信頼性の高いデフォルトのメソッドとして位置付けられています(2011年3月)。

gzipとzlibはファイル/ストリーム形式であり、デフォルトでデフレートをラップアラウンドし、特にチェックサムを追加して、より安全で少し遅くします。一方、サイズの増加は問題になりません。

HTTP_compression-Wikipediaも参照してください

于 2011-03-24T09:59:47.107 に答える
0

詳細についてはhttp://httpd.apache.org/docs/2.0/mod/mod_deflate.htmlをご覧くださいno-gzipwgetたとえば、さまざまな値で を使用して、「ブラウザ」を変更するとどうなり-Uますか?

于 2009-05-18T14:42:15.690 に答える