0


HTTP セッションの終了後、TCP 接続はどうなりますか?
たとえば、ウェブサーバーから静的ウェブページをロードした後

ありがとう

4

2 に答える 2

1

通常、HTTP セッションとは、サーバーが特定のユーザーとの関連付けを保持していることを指し、任意の長さになる可能性があります (たとえば、Cookie を関連付けトークンとして使用)。

したがって、HTTP セッションには通常、複数の TCP セッションが含まれます。非永続的な HTTP 接続の場合、すべての要求には独自の TCP セッションがあります (その後閉じられます)。一方、永続的な HTTP 接続の場合、TCP セッション内で複数の HTTP リソースを取得でき、いずれかの側でタイムアウトのしきい値に達すると、いずれかの側でセッションが閉じられます。

Persistent HTTP connections (Keep-Alive: true)に関するウィキペディアの記事

于 2012-06-06T11:48:53.540 に答える
0

1 つの TCP 接続で複数の HTTP 要求を持つことができます。したがって、HTTP セッションを一連の HTTP 要求/応答として参照すると、TCP 接続が閉じられます。

TCP レベルでは、終了側が FIN フラグが設定されたパケットを送信し、反対側が ACK でこれを確認し、すぐにまたは最終的に独自の FIN を実行し、最初の側が ACK で再度確認します。FIN フラグではなく RST で接続が放棄される可能性もあります。最初の FIN を送信したポートは TIME_WAIT 状態になります。これは、その後に到着するパケットを拒否するために使用されます。そうしないと、新しい接続のパケットと誤解される可能性があります。タイムアウト後、ポートは TIME_WAIT 状態から CLOSED 状態に移行します。

編集: 正常終了は FIN フラグで示されます。

于 2012-06-05T10:15:25.643 に答える