0

http://www.w3.org/Protocols/rfc2616/rfc2616.htmlで http 1.1 の仕様を確認したところ、接続に関するセクションに出くわしましたhttp://www.w3.org/Protocols/rfc2616/rfc2616- sec8.html#sec8と言う

" HTTP/1.1 と以前のバージョンの HTTP との大きな違いは、永続的な接続がすべての HTTP 接続のデフォルトの動作であることです。つまり、特に明記されていない限り、クライアントは、エラー応答の後でもサーバーが永続的な接続を維持すると想定する必要があります (SHOULD)。サーバーから。

永続的な接続は、クライアントとサーバーが TCP 接続の終了を通知できるメカニズムを提供します。このシグナリングは、Connection ヘッダー フィールド (セクション 14.10) を使用して行われます。クローズが通知されると、クライアントはその接続でそれ以上リクエストを送信してはなりません。"

次に、 https://www.rfc-editor.org/rfc/rfc2965の http 状態管理に関するセクションも調べました。そのセクション 2 には、次のように書かれています。

「現在、HTTP サーバーは、その要求を前後の要求に関連付けることなく、各クライアント要求に応答します。」

RFC 2616 の永続的な接続の必要性に関するセクションでは、永続的な接続の前に、クライアントが URL をフェッチするたびに、新しい要求ごとに新しい TCP 接続を確立する必要があるとも述べています。

ここで私の質問は、http/1.1 に永続的な接続がある場合、上記のように、クライアントは新しいリクエストごとに新しい接続を作成する必要がないということです。同じ接続を介して複数の要求を送信できます。したがって、サーバーが後続のすべてのリクエストが同じ接続を介して送信されていることを認識している場合、そのリクエストが同じクライアントからのものであることは明らかではないでしょうか? したがって、これは状態を維持するのに十分ではなく、サーバーがリクエストが同じクライアントからのものであることを理解するのに十分でしょうか? この場合、なぜ個別の状態管理メカニズムが必要なのでしょうか?

4

2 に答える 2

0

基本的にはそうですが、HTTP持続的接続を使用して、接続処理(接続/切断/再接続など)の管理TCP/IPオーバーヘッドを排除します。これは、接続を移動するデータの状態について何も言うことを意味するものではありません。これは、あなたが話していることです。

于 2012-12-20T05:13:26.163 に答える
0

いいえ。たとえば、複数のTCP接続からの要求を集約する中間(プロキシやリバースプロキシなど)が要求パスに存在する場合があります。

http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p1-messaging-21.html#intermediariesを参照してください。

于 2012-12-20T07:56:41.603 に答える