<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>mod_deflate - Apache HTTP サーバ</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body>
<div id="page-header">
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p>
<p class="apache">Apache HTTP サーバ バージョン 2.2</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP サーバ</a> &gt; <a href="http://httpd.apache.org/docs/">ドキュメンテーション</a> &gt; <a href="../">バージョン 2.2</a> &gt; <a href="./">モジュール</a></div>
<div id="page-content">
<div id="preamble"><h1>Apache モジュール mod_deflate</h1>
<div class="toplang">
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_deflate.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../ja/mod/mod_deflate.html" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>
<table class="module"><tr><th><a href="module-dict.html#Description">説明:</a></th><td>クライアントへ送られる前にコンテンツを圧縮する</td></tr>
<tr><th><a href="module-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="module-dict.html#ModuleIdentifier">モジュール識別子:</a></th><td>deflate_module</td></tr>
<tr><th><a href="module-dict.html#SourceFile">ソースファイル:</a></th><td>mod_deflate.c</td></tr></table>
<h3>概要</h3>

    <p><code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> モジュールは <code>DEFLATE</code>
    出力フィルタを提供します。これはサーバからの出力を、ネットワークを
    通してクライアントに送る前に圧縮することを可能にします。</p>
</div>
<div id="quickview"><h3 class="directives">ディレクティブ</h3>
<ul id="toc">
<li><img alt="" src="../images/down.gif" /> <a href="#deflatebuffersize">DeflateBufferSize</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#deflatecompressionlevel">DeflateCompressionLevel</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#deflatefilternote">DeflateFilterNote</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#deflatememlevel">DeflateMemLevel</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#deflatewindowsize">DeflateWindowSize</a></li>
</ul>
<h3>トピック</h3>
<ul id="topics">
<li><img alt="" src="../images/down.gif" /> <a href="#recommended">サンプル設定</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#enable">圧縮を有効にする</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#proxies">Proxy サーバでの扱い</a></li>
</ul><h3>参照</h3>
<ul class="seealso">
<li><a href="../filter.html">Filters</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="recommended" id="recommended">サンプル設定</a></h2>
    <p>下にせっかちな人向けの簡単な設定例を示します。</p>

    <div class="example"><h3>数タイプのみ圧縮する</h3><p><code>
      AddOutputFilterByType DEFLATE text/html text/plain text/xml
    </code></p></div>

    <p>以下の設定はコンテンツをより圧縮しますが、ずっと複雑な設定になります。
    設定の隅々までよく理解しないで使わないでください。</p>

    <div class="example"><h3>画像以外全て圧縮する</h3><p><code>
      &lt;Location /&gt;<br />
      <span class="indent">
        # Insert filter<br />
        SetOutputFilter DEFLATE<br />
        <br />
        # Netscape 4.x has some problems...<br />
        BrowserMatch ^Mozilla/4         gzip-only-text/html<br />
        <br />
        # Netscape 4.06-4.08 have some more problems<br />
        BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
        <br />
        # MSIE masquerades as Netscape, but it is fine<br />
        BrowserMatch \bMSIE             !no-gzip !gzip-only-text/html<br />
        # Don't compress images<br />
        SetEnvIfNoCase Request_URI \<br />
        <span class="indent">
          \.(?:gif|jpe?g|png)$ no-gzip dont-vary<br />
        </span>
        <br />
        # Make sure proxies don't deliver the wrong content<br />
        Header append Vary User-Agent env=!dont-vary<br />
      </span>
      &lt;/Location&gt;
    </code></p></div>

</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="enable" id="enable">圧縮を有効にする</a></h2>

    <h3><a name="output" id="output">Output Compression</a></h3>
      <p>圧縮機能は <code>DEFLATE</code> <a href="../filter.html">フィルタ</a>
      により実装されています。以下のディレクティブはそのディレクティブのある
      コンテナ中のドキュメントを圧縮するようにします:</p>
      
      <div class="example"><p><code>
        SetOutputFilter DEFLATE
      </code></p></div>

      <p>よく使われているブラウザでは、すべてのコンテンツに対する
      圧縮を扱えるわけではありません。ですから、<code>gzip-only-text/html</code> 
      ノートを <code>1</code> にして、html ファイルに対してのみ
      圧縮が働くようにした方がよいかもしれません (以下参照)
      この値を <em><code>1</code> 以外の値</em>に設定した場合は無視されます。</p>
      
      <p>通常、特定のMIMEタイプについてのみ圧縮したいのであれば、
      <code class="directive"><a href="../mod/core.html#addoutputfilterbytype">AddOutputFilterByType</a></code>
      ディレクティブを使用します。次に Apache のドキュメントの html
      ファイルのみの圧縮を有効にする例を示します。</p>

      <div class="example"><p><code>
        &lt;Directory "/your-server-root/manual"&gt;<br />
        <span class="indent">
          AddOutputFilterByType DEFLATE text/html<br />
        </span>
        &lt;/Directory&gt;
      </code></p></div>

      <p>全てのファイルタイプでの圧縮に問題を抱えているブラウザに対しては、
      <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>
      ディレクティブを使用して、特定のブラウザに <code>no-gzip</code>
      ノートをセットし、圧縮が行なわれないようにします。
      <code>no-gzip</code> と <code>gzip-only-text/html</code>
      を組み合わせることで上手く対処できます。
      この場合、前者が後者をオーバーライドします。
      上記の<a href="#recommended">設定例</a>の抜粋を
      次に示しますのでご覧下さい。</p>

      <div class="example"><p><code>
        BrowserMatch ^Mozilla/4         gzip-only-text/html<br />
        BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
        BrowserMatch \bMSIE             !no-gzip !gzip-only-text/html
      </code></p></div>

      <p>まず始めに <code>User-Agent</code> 文字列から Netscape Navigator
      4.x であるかどうかを調べます。これらのバージョンでは、
      <code>text/html</code> 以外のタイプの圧縮を扱うことができません。
      4.06, 4.07, 4.08 は html ファイルの伸張にも問題を抱えています。
      ですからこれらに対しては、完全に deflate フィルタをオフにします。</p>

      <p>3 番目の <code class="directive"><a href="../mod/mod_setenvif.html#browsermatch">BrowserMatch</a></code>
      ディレクティブで、推測したユーザーエージェントを修正します。
      なぜなら Microsoft Internet Explorer も "Mozilla/4" と特定されますが、
      これらは実際には圧縮を扱うことができるからです。
      <code>User-Agent</code> ヘッダを "MSIE"
      (<code>\b</code> は「単語の境界」を意味します) の追加文字で検査して、
      これ以前に設定した制限を再び解除します。</p>

      <div class="note"><h3>注</h3>
        <code>DEFLATE</code> フィルタは必ず、PHP や SSI といった RESOURCE
        フィルタの後になります。
        DEFLATE フィルタは内部的なサブリクエストを関知しません。
      </div>
      <div class="note"><h3>注</h3>
        <code class="directive"><a href="../mod/core.html#setenv">SetEnv</a></code> で設定される
        <code>force-gzip</code> 環境変数がありますが、これは
        ブラウザの accept-encoding 設定を無視し、圧縮した出力をします。
      </div>

    
    <h3><a name="inflate" id="inflate">出力の伸長</a></h3>
      <p><code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> モジュールは、gzip 圧縮されたレスポンス
      本文を inflate/uncompress するフィルタも提供しています。
      この機能を有効にするには、<code class="directive"><a href="../mod/core.html#setoutputfilter">SetOutputFilter</a></code>
      や <code class="directive"><a href="../mod/mod_mime.html#addoutputfilter">AddOutputFilter</a></code> を使って、
      <code>INFLATE</code> フィルタを出力フィルタチェインに挿入します。
      例えば次のようにします。</p>

      <div class="example"><p><code>
        &lt;Location /dav-area&gt;<br />
        <span class="indent">
          ProxyPass http://example.com/<br />
          SetOutputFilter INFLATE<br />
        </span>
        &lt;/Location&gt;
      </code></p></div>

      <p>この例では、example.com からの gzip 圧縮された出力を伸長し、
      その他のフィルタがさらにその出力を処理できるようにします。
      </p>
      
    
    <h3><a name="input" id="input">入力の伸張</a></h3>
      <p><code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> モジュールは、gzip
      で圧縮されたリクエスト本体を伸張するフィルタも提供しています。
      この機能を有効にするには、<code class="directive"><a href="../mod/core.html#setinputfilter">SetInputFilter</a></code>
      か <code class="directive"><a href="../mod/mod_mime.html#addinputfilter">AddInputFilter</a></code> を使用して、
      <code>DEFLATE</code> フィルタを入力フィルタチェインに組み込みます。
      例えば次のようになります。</p>

      <div class="example"><p><code>
        &lt;Location /dav-area&gt;<br />
        <span class="indent">
          SetInputFilter DEFLATE<br />
        </span>
        &lt;/Location&gt;
      </code></p></div>
      
      <p>この設定であれば、<code>Content-Encoding: gzip</code>
      ヘッダを含むリクエストが来ると、本体は自動的に伸張されます。
      gzip リクエスト本体を送信するブラウザはあまりありません。
      しかし、例えば <a href="http://www.webdav.org">WebDAV</a>
      クライアントの幾つかなど、特別なアプリケーションでリクエストの
      圧縮を実際にサポートしているものもあります。</p>

      <div class="warning"><h3>Content-Length に関する注意</h3>
        <p>リクエスト本体それ自体を評価する場合は、<em><code>Content-Length</code>
        ヘッダを信用しないでください</em>。Content-Length ヘッダは、
        クライアントから送信されるデータの長さを反映しているのであって、
        伸張されたデータストリームの<em>バイトカウントではありません</em>。</p>
      </div>
    
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="proxies" id="proxies">Proxy サーバでの扱い</a></h2>

    <p><code class="module"><a href="../mod/mod_deflate.html">mod_deflate</a></code> モジュールは <code>Vary: Accept-Encoding</code>
    HTTP 応答ヘッダを送信して、適切な <code>Accept-Encoding</code>
    リクエストヘッダを送信するクライアントに対してのみ、
    プロクシサーバがキャッシュした応答を送信するように注意を喚起します。
    このようにして、圧縮を扱うことのできないクライアントに
    圧縮された内容が送られることのないようにします。</p>

    <p>もし特別に何かに依存して除外したい場合、例えば <code>User-Agent</code>
    ヘッダなどに依存している場合、手動で <code>Vary</code> ヘッダを設定して、
    追加の制限についてプロクシサーバに注意を行なう必要があります。
    例えば <code>User-Agent</code> に依存して <code>DEFLATE</code>
    を追加する典型的な設定では、次のように追加することになります。</p>

    <div class="example"><p><code>
      Header append Vary User-Agent
    </code></p></div>
    
    <p>リクエストヘッダ以外の情報 (<em>例えば</em> HTTP バージョン)
    に依存して圧縮するかどうか決める場合、
    <code>Vary</code> ヘッダを <code>*</code> に設定する必要があります。
    このようにすると、仕様に準拠したプロクシはキャッシュを全く行なわなくなります。</p>

    <div class="example"><h3>例</h3><p><code>
      Header set Vary *
    </code></p></div>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateBufferSize" id="DeflateBufferSize">DeflateBufferSize</a> <a name="deflatebuffersize" id="deflatebuffersize">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>zlib が一度に圧縮する塊の大きさ</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateBufferSize <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateBufferSize 8096</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
</table>
    <p><code class="directive">DeflateBufferSize</code> ディレクティブは
    zlib が一度に圧縮する塊の大きさをバイト単位で指定します。</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateCompressionLevel" id="DeflateCompressionLevel">DeflateCompressionLevel</a> <a name="deflatecompressionlevel" id="deflatecompressionlevel">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>出力に対して行なう圧縮の程度</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateCompressionLevel <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>Zlib のデフォルト</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td>This directive is available since Apache 2.0.45</td></tr>
</table>
     <p><code class="directive">DeflateCompressionLevel</code> ディレクティブは
         圧縮の程度を設定します。大きな値では、より圧縮が行なわれますが、
         CPU 資源を消費します。</p>
    <p>値は 1 (低圧縮) から 9 (高圧縮) です。</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateFilterNote" id="DeflateFilterNote">DeflateFilterNote</a> <a name="deflatefilternote" id="deflatefilternote">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>ロギング用に圧縮比をメモに追加</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateFilterNote [<var>type</var>] <var>notename</var></code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
<tr><th><a href="directive-dict.html#Compatibility">互換性:</a></th><td><var>type</var> is available since Apache 2.0.45</td></tr>
</table>
    <p><code class="directive">DeflateFilterNote</code> ディレクティブは
    圧縮比に関するメモがリクエストに付加されることを指定します。
    メモ (note) の名前はディレクティブに指定された値です。
    メモは<a href="../logs.html#accesslog">アクセスログ</a>に
    値を記録し、統計を取る目的にも使えます。</p>

    <div class="example"><h3>例</h3><p><code>
      DeflateFilterNote ratio<br />
      <br />
      LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
      CustomLog logs/deflate_log deflate
    </code></p></div>

    <p>ログからもっと精密な値を抽出したい場合は、<var>type</var>
    引数を使用して、データタイプをログのメモとして残すように指定できます。
    <var>type</var> は次のうちの一つです。</p>

    <dl>
      <dt><code>Input</code></dt>
      <dd>フィルタの入力ストリームのバイトカウントをメモに保存する。</dd>

      <dt><code>Output</code></dt>
      <dd>フィルタの出力ストリームのバイトカウントをメモに保存する。</dd>

      <dt><code>Ratio</code></dt>
      <dd>圧縮率 (<code>出力 / 入力 * 100</code>) をメモに保存する。
      <var>type</var> 引数を省略した場合は、これがデフォルトとなります。</dd>
    </dl>

    <p>まとめると、次のようにログを取ることになるでしょう。</p>

    <div class="example"><h3>精密なログ採取</h3><p><code>
      DeflateFilterNote Input instream<br />
      DeflateFilterNote Output outstream<br />
      DeflateFilterNote Ratio ratio<br />
      <br />
      LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
      CustomLog logs/deflate_log deflate
    </code></p></div>

<h3>参照</h3>
<ul>
<li><code class="module"><a href="../mod/mod_log_config.html">mod_log_config</a></code></li>
</ul>
</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateMemLevel" id="DeflateMemLevel">DeflateMemLevel</a> <a name="deflatememlevel" id="deflatememlevel">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>zlib が圧縮に使うメモリのレベルを指定</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateMemLevel <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateMemLevel 9</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
</table>
    <p><code class="directive">DeflateMemLevel</code> ディレクティブは
    zlib が圧縮に使うメモリのレベルを設定します (1 から 9 の間の値)。
    (訳注: 2 を底とする対数の値になります。
    8 程度が良いでしょう。)</p>

</div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="directive-section"><h2><a name="DeflateWindowSize" id="DeflateWindowSize">DeflateWindowSize</a> <a name="deflatewindowsize" id="deflatewindowsize">ディレクティブ</a></h2>
<table class="directive">
<tr><th><a href="directive-dict.html#Description">説明:</a></th><td>Zlib の圧縮用ウィンドウの大きさ</td></tr>
<tr><th><a href="directive-dict.html#Syntax">構文:</a></th><td><code>DeflateWindowSize <var>value</var></code></td></tr>
<tr><th><a href="directive-dict.html#Default">デフォルト:</a></th><td><code>DeflateWindowSize 15</code></td></tr>
<tr><th><a href="directive-dict.html#Context">コンテキスト:</a></th><td>サーバ設定ファイル, バーチャルホスト</td></tr>
<tr><th><a href="directive-dict.html#Status">ステータス:</a></th><td>Extension</td></tr>
<tr><th><a href="directive-dict.html#Module">モジュール:</a></th><td>mod_deflate</td></tr>
</table>
    <p><code class="directive">DeflateWindowSize</code> ディレクティブは
    zlib の圧縮用ウィンドウ (訳注: zlib で使用される履歴バッファ) 
    の大きさを指定します (1 から 15 の間の値)。
    一般的に大きなウィンドウサイズを使用すると圧縮率が向上します。
    (訳注: 2 を底とする対数の値になります。
    8 から 15 にするのが良いでしょう。)</p>

</div>
</div>
<div class="bottomlang">
<p><span>翻訳済み言語: </span><a href="../en/mod/mod_deflate.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="../ja/mod/mod_deflate.html" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="../ko/mod/mod_deflate.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2012 The Apache Software Foundation.<br />この文書は <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> のライセンスで提供されています。.</p>
<p class="menu"><a href="../mod/">モジュール</a> | <a href="../mod/directives.html">ディレクティブ</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">用語</a> | <a href="../sitemap.html">サイトマップ</a></p></div>
</body></html>