【Apache】【Tomcat】 Keep-Alive について

  Keep-Aliveとは?

 * 1つのTCP接続で複数のHTTPリクエストが処理されるようになる

 

  そもそも何のためか?

 * HTTPは「ステートレス・プロトコル」と呼ばれるとおり、1回の要求(リクエスト)ごとに接続が切断される

 ※ HTTPについては、以下の関連記事を参照のこと。
http://blogs.yahoo.co.jp/dk521123/34553850.html
 => !!問題点!! しかし、今日では1つのWebページを表示するために、
     複数のファイル(例えば画像やCSSなど)が必要となる場合がほとんどなので、
     1リクエストごとに接続を切っていたのでは、効率が悪い
 => そこで、KeepAliveは、一度接続したらある条件を満たすまで接続を保持できる

 

  注意

 * HTTP/1.0 クライアントに送る場合には Keep-Alive 接続を使えない

 

  メリット

 * 複数のリクエストを同一の TCP コネクションを経由して送信することが可能になることにより、

  1) TCP 接続の確立にかかる時間が節約できる
  2) TCP の接続と切断に必要なリソース(CPUとネットワーク) の節約

   => パフォーマンスの向上となる

 

  デメリット

 * リクエストが終了したクライアントに対して、接続を維持しているとリソース(主にメモリ)の無駄遣いになる

 

 

  関連記事

  HTTP

http://blogs.yahoo.co.jp/dk521123/34553850.html

  設定ファイル(server.xml) ~ Connector 編~

http://blogs.yahoo.co.jp/dk521123/34658624.html