KeepAlive とは何ですか?
KeepAlive とは、デバイスまたはソフトウェアが定期的に信号を交換し、それらの間の接続がアクティブなままであることを確認する、ネットワーク システムにおける通信形式を指します。 事前に定義された間隔で、一方が KeepAlive 信号を送信し、受信者はそれを接続が正常に機能していることの確認として解釈します。 一定時間 KeepAlive 信号が受信されない場合、システムは接続が失われたとみなし、通信チャネルを閉じる、セッションを終了する、再接続するなどのプロセスを開始します。
TCP では、この機能は TCP KeepAlive と呼ばれます。 サーバー側では、この機能により、到達不能になったクライアントとの接続に関連付けられたリソースが自動的に解放されます。 クライアント側では、TCP KeepAlive により、フェイルオーバーによりサーバーの IP アドレスが変更された場合などに自動再接続が可能になります。
HTTP では、クライアントとサーバー間の TCP 接続を明示的に維持するための KeepAlive 機能が提供されています。 これにより、必要な TCP 接続の数が削減され、接続リソースが節約され、パフォーマンスが向上します。 Web ページが読み込まれるときには、メインの HTML ファイルだけでなく、画像、CSS、JavaScript ファイルなどの関連アセットも転送する必要があります。 通常、これらのファイルを転送するには、ファイルごとに個別の TCP 接続が必要です。 ただし、KeepAlive を有効にすると、これらの転送は単一の TCP 接続を介して実行できます。 この機能は HTTP/1.0 ではオプションでしたが、HTTP/1.1 以降では KeepAlive がデフォルトで有効になっています。