[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