【ネットワーク】Connection: Keep-Alive

◾️はじめに

Connection: Keep-Alive についてメモしておく

【1】Keep-Aliveとは?

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

【2】そもそも何のためか?

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

 => HTTP に関する詳細は、以下の関連記事を参照の事

プロトコル】HTTP
https://dk521123.hatenablog.com/entry/2015/02/04/215800

1)HTTPの問題点

しかし、今日では1つのWebページを表示するために、
     複数のファイル(例えば画像やCSSなど)が必要となる場合がほとんどなので、
     1リクエストごとに接続を切っていたのでは、効率が悪い
 => そこで、KeepAliveは、一度接続したらある条件を満たすまで接続を保持できる

 【3】注意

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

【4】メリット・デメリット

1)メリット

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

[1] TCP 接続の確立にかかる時間が節約できる
[2] TCP の接続と切断に必要なリソース(CPUとネットワーク) の節約
   => パフォーマンスの向上となる

 2)デメリット

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

参考文献

http://qiita.com/mechamogera/items/3e79ad1095ef23552da4
http://www.inter-office.co.jp/contents/72/
http://qiita.com/kou/items/acb3dcf1dcb428d7a3ec
http://www.atmarkit.co.jp/ait/articles/0207/23/news002_2.html
http://d.hatena.ne.jp/kazuhooku/20100327/1269688828
http://server-setting.info/centos/apache_keepalive.html
 Apache仕様
http://httpd.apache.org/docs/2.2/ja/mod/core.html

関連記事

curl コマンド
https://dk521123.hatenablog.com/entry/2017/12/05/233100
プロトコル】HTTP
https://dk521123.hatenablog.com/entry/2015/02/04/215800

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