KeepAlive(キープアライブ)とは、ネットワークで接続された機器やソフトウェア同士が、お互いに正常に接続されていることを確認するために、定期的にやり取りする通信のことです。あらかじめ決まった周期で相手に送信され、これを受け取った側は「相手が正常に接続されている」と判断します。一定時間以上KeepAliveが受信されない場合には、接続が切れたと判断し、通信回線を閉じる、セッションを終了する、再度接続し直す、等の処理を行います。
例えばTCPでは、TCP KeepAliveという機能が用意されています。サーバ側でこの機能を利用すると、通信不可能となったクライアントとのコネクションで使用していたリソースを、自動的に解放します。クライアント側でこの機能を利用すると、サーバのフェイル オーバ等によってIPアドレスが変更された場合、そのことがクライアント側に通知され、自動的に再接続を行うことが可能になります。
HTTPではクライアントとサーバとのTCP接続を明示的に維持するため、KeepAlive機能が用意されています。これはTCP接続の総数を減らし、TCPのコネクション リソースの消費を抑えるために使用されます。Webページの表示では、メインのHTMLファイルだけではなく、そのページに必要な画像やCSS、Javascript等のファイルも転送する必要があります。通常であればこれらのファイル転送を行うには、毎回異なるTCP接続が必要になりますが、KeepAliveを有効にすると、一連のファイル転送を1つのTCP接続で処理できるようになります。この機能はHTTP/1.0ではオプションでしたが、HTTP/1.1からはデフォルトで有効になっています。