2016-09-22 34 views
2

は、それが書かれている:"connectionTimeout"はTomcatでの正確な意味は何ですか?ドキュメント(<a href="https://tomcat.apache.org/tomcat-7.0-doc/config/http.html" rel="nofollow">Tomcat 7 Config</a>)において

このコネクタが待機するミリ秒数、要求URIラインの接続を受け付けた後に提示されます。無限(つまり無限)のタイムアウトを示すには、-1の値を使用します。デフォルト値は60000(60秒)ですが、Tomcatに同梱されている標準のserver.xmlは20000(つまり20秒)に設定されています。 disableUploadTimeoutがfalseに設定されていない限り、このタイムアウトは要求本体(存在する場合)を読み取るときにも使用されます。

クライアントがサーバーに要求を送信すると、接続を確立するのにNミリ秒かかります。このNがクライアント側で設定された接続タイムアウトを超えると、要求はクライアントで期待通りに失敗します。

TomcatのconnectionTimeoutが何を違うのか理解できません。具体的には、「要求URIラインが提示されるために接続を受け入れた後」とは何を意味していますか?

+0

その接続にはHTTP要求が含まれている必要があります。 HTTPリクエストの最初の部分は何ですか? –

+0

@SotiriosDelimanolis「接続を受け入れる」とは、TCPハンドシェイクの完了を意味しますか?その後、URI、要求ボディなどを使ってクライアントからサーバーにデータが移動します。 –

答えて

1

connectionTimeoutは、サーバーが自動的にクライアントとの接続を閉じる時間を制限します。それはDenial Of Service Attackの影響を制限する方法です。実際にDOSの攻撃DOS攻撃を実行する典型的な方法は、特定のサーバーでいくつかの要求を開始することです。各要求は、サーバーが何も待つことなく永続的に持続し、サーバーがそのスレッドのプールを満たします。新しい要求を受け入れる。このタイムアウトのおかげで、xミリ秒後に、潜在的な攻撃と見なされる要求は無視されます。

Hereは、少し深くなっている世界的に同じテーマに関する興味深い議論です。

+0

リンクのディスカッションを読んだ後、DOS攻撃が接続タイムアウトにどのように関係しているかを理解しました。ありがとう! –

関連する問題