[APACHE DOCUMENTATION]

Apache HTTP Server

Apache でサポートする keep-alive


keep-alive とは

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

keep-alive のサポートを有効にする

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

注意: Apache 1.2 では KeepAlive ディレクティブの構文は異なります。

KeepAlive

構文: KeepAlive max-requests
デフォルト: KeepAlive 5
コンテキスト: サーバ設定ファイル
ステータス: Core

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

KeepAliveTimeout

構文: KeepAliveTimeout seconds
デフォルト: KeepAliveTimeout 15
コンテキスト: サーバ設定ファイル
ステータス: Core

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

keep-alive が使用される場合

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

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


Apache HTTP Server

Index