<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Translation//EN">
<html><head>
<title>Apache の keep-alive サポート</title>
<meta http-equiv=Content-Type content="text/html; charset=ISO-2022-JP">
<!-- English revision:1.11 -->
</head>

<!-- Background white, links blue (unvisited), navy (visited), red (active) -->
<body
 bgcolor="#FFFFFF"
 text="#000000"
 link="#0000FF"
 vlink="#000080"
 alink="#FF0000"
>
    <div align="CENTER">
      <img src="images/sub.gif" alt="[APACHE DOCUMENTATION]" /> 

      <h3>Apache HTTP Server</h3>
    </div>


<h1 align="CENTER">Apache でサポートする keep-alive</h1>

<hr>

<h2>keep-alive とは</h2>

<code>HTTP/1.1</code> ドラフトに定義されているように、
HTTP の拡張機能である keep-alive によって
持続的なコネクションが可能になります。
これらの持続的な HTTP セッションのおかげで、
複数のリクエストを同一の TCP コネクションを経由して
送信することが可能となります。
多数のイメージを貼り付けてある HTML ドキュメントを送信するときに、
場合によっては、待ち時間がほぼ 50% となるほど速くなることが
示されています。

<h2>keep-alive のサポートを有効にする</h2>

Apache 1.1 ではデフォルトで keep-alive のサポートは有効になっています。
これだけではなく、Apache の動作を変更できるディレクティブが
以下のようにいくつかあります。

<p><strong>注意</strong>: Apache 1.2 では <a
href="mod/core.html#keepalive">KeepAlive</a
> ディレクティブの構文は異なります。</p>

<h3>KeepAlive</h3>
<a
 href="mod/directive-dict.html#Syntax"
 rel="Help"
><strong>構文:</strong></a> KeepAlive <em>max-requests</em><br>
<a
 href="mod/directive-dict.html#Default"
 rel="Help"
><strong>デフォルト:</strong></a> <code>KeepAlive 5</code><br>
<a
 href="mod/directive-dict.html#Context"
 rel="Help"
><strong>コンテキスト:</strong></a> サーバ設定ファイル<br>
<a
 href="mod/directive-dict.html#Status"
 rel="Help"
><strong>ステータス:</strong></a> Core<p>

このディレクティブで keep-alive のサポートを有効にします。
<em>max-requests</em> については Apache に受け入れさせたい
1 コネクション当たりのリクエストの最大数を設定してください。
制限を設けてクライアントにサーバの資源を浪費させないようにします。
サポートを無効にするにはこの項目に <code>0</code> を設定してください。

<h3>KeepAliveTimeout</h3>
<a
 href="mod/directive-dict.html#Syntax"
 rel="Help"
><strong>構文:</strong></a> KeepAliveTimeout <em>seconds</em><br>
<a
 href="mod/directive-dict.html#Default"
 rel="Help"
><strong>デフォルト:</strong></a> <code>KeepAliveTimeout 15</code><br>
<a
 href="mod/directive-dict.html#Context"
 rel="Help"
><strong>コンテキスト:</strong></a> サーバ設定ファイル<br>
<a
 href="mod/directive-dict.html#Status"
 rel="Help"
><strong>ステータス:</strong></a> Core<p>

Apache に後続のリクエストが到着するのを <em>seconds</em> 秒だけ待たせた後、
(リクエストが到着しない場合には) コネクションをクローズします。
リクエストを受信した場合には、<a
href="mod/core.html#timeout"><code>Timeout</code></a> ディレクティブ
で指定した timeout 値を適用します。

<h2>keep-alive が使用される場合</h2>

keep-alive サポートを使用するには、
まず、ブラウザが keep-alive をサポートしていなければなりません。
現在の多くのブラウザ、例えば Netscape Navigator 2.0 
や (Microsoft Internet Explorer などの) Spyglass Mosaic に基づく
ブラウザはこの機能をサポートしています。
しかし、Windows 95 ベースのいくつかのブラウザは、keep-alive をサポート
しているサーバに対して誤動作することに注意してください。
これらのブラウザはコネクト時にハングすることがあります。
この誤動作はいくつかの Windows のブラウザに見られ、Apache だけではなく
keep-alive をサポートするすべてのサーバとコネクトするときに
発生します。
Netscape 3.0b5 以降のバージョンについては
この問題への対処がなされています。

<p> ただし、 keep-alive サポートが有効になるのは、
あらかじめ長さが判明しているファイルに対してのみです。
そのため、大部分の CGI スクリプト、サーバサイドインクルードファイル、
ディレクトリリストでは、keep-alive プロトコルを使用しないことになります。
これはエンドユーザには完全に透過的になっているべきものですが、
ウェブマスタは知っておいた方が良いことでしょう。
</p>

    <hr />

    <h3 align="CENTER">Apache HTTP Server</h3>
    <a href="./"><img src="images/index.gif" alt="Index" /></a>

</body>
</html>

