6

HTTPプロトコルはステートレスですが、Kurose-Rossの本でこれを見つけました。

The default HTTP method is with persistent connections and pipeling.  

これは、複数のリクエストを処理できることを意味するため、複数のリクエストを要求するクライアントのソケットを開いたままにします。それは本当ですか?はいの場合、HTTPプロトコルがステートレスと見なされるのはなぜですか?

4

1 に答える 1

6

HTTP 永続接続は、開いたままの TCP 接続に関連しています。HTTP は TCP の上で動作するため、TCP は接続および/またはステートフルにすることができますが、HTTP はそうではありません。TCP は、HTTP の単なるトランスポートです。

OSI モデルを見ると、TCP がレイヤー 4 (トランスポート) にあるのに対し、HTTP はレイヤー 7 (アプリケーション) にあることがわかります。HTTP は TCP に関連付けられておらず、他の転送方法も使用できます。プロトコルとして、TCP から機能を「継承」していません。

(永続的な接続は、実際には非常に長い間永続的ではないことに注意してください。Apache 2 の場合、デフォルトで 5 秒間しか開かれておらず、「RFC 2616 (46 ページ) によると、シングルユーザー クライアントは任意のサーバーまたはプロキシとの 2 つ以上の接続".)

于 2012-11-05T11:15:36.887 に答える