HTTPキープアライブ 【HTTP Keep-Alive】 パーシステントコネクション / persistent connection
概要
HTTPキープアライブ(HTTP Keep-Alive)とは、HTTPの拡張仕様の一つで、一つのTCP接続を一回のHTTP通信で切断せず、複数のHTTPリクエスト/レスポンスを送受信するよう維持する機能。HTTP(Hypertext Transfer Protocol)はWebコンテンツの送受信に標準的に用いられるプロトコル(通信規約)で、下位のトランスポート層のプロトコルにTCP(Transmission Control Protocol)を用いる。
初期のHTTPは一回の送受信のために一つのTCP接続を確立し、転送が終わると切断するという仕様だったため、一つのページに複数の画像ファイルが関連付けられている場合などには伝送するファイルの数だけTCP接続の確立・切断を繰り返し、転送効率が悪くシステムのへの負荷が高かった。
HTTPキープアライブが有効になっているWebサーバとWebブラウザ間の通信では、ヘッダ中で「Connection: Keep-Alive」と宣言する(HTTP 1.0の場合)ことでTCPコネクションが維持され続けるようになり、リクエストやレスポンスの送受信に繰り返し使われる。HTTP 1.1からは特に指定がなければコネクションが継続され、ヘッダ中で「Connection: Close」を宣言すると切断される。
通信が終了したのにコネクションが残り続けるとシステムへの負担となるため、一定時間無通信の場合には一旦接続を終了(タイムアウト)するよう設定されている。どのくらい連続して無通信だとタイムアウトするかはWebサーバの設定によるが、通常は数十秒から数分程度に設定されていることが多い。
(2020.5.10更新)