キープアライブ
キープアライブは、HTTPヘッダーの一つで、Webブラウザーからの複数のリクエストに対して、Webサーバーが1つの接続を使用できるようにします。HTTP/1を実行するサーバーでは、Webサイトのパフォーマンスを向上させるために、キープアライブが有効になっていることがよくあります。HTTP/2のキープアライブヘッダーは使用されません。HTTP/2のプロトコルでは、キープアライブがデフォルトの動作だからです。
Webサーバーでキープアライブを有効にすると、サーバーとクライアント(Webサイトの訪問者)の間に永続的な接続が作成されます。TCP接続は、閉じられるかタイムアウトするまで開いたままになります。各TCP接続ではハンドシェイク処理を完了する必要があるため、接続が複数あるとページの読み込み時間が長くなります。キープアライブを使うと、ブラウザーは画像やCSSファイルなど、Webページのすべての素材を1つの接続でダウンロードできます。
キープアライブの欠点は、Webサーバーからより多くのシステムリソースを必要とすることです。サーバー上のWebサイトに大量のトラフィックがある場合、複数の、場合によっては数千もの永続的な接続が一度に開かれることがあります。最終的に、サーバーが新しい接続を処理できなくなり、応答しなくなる可能性があります。Apacheには、サーバーが最大容量に達するのを防ぐために、次のディレクティブが用意されています。
- KeepAliveTimeout - 新しいリクエストを待機している間、永続的な接続を開いたままにできる最大時間
- MaxKeepAliveRequests - 接続をリセットする必要が生じるまでに、1つの接続内で許可されるリクエストの最大数
Apacheサーバーでキープアライブを有効にするには、サーバー全体のインクルードファイル、または特定のWebサイトの.HTACCESSファイルに次のコードを追加します。
<IfModule mod_headers.c>
Header set Connection keep-alive
</IfModule>
知識をテストする