オブジェクトはシリアル化されてユーザーに送信され、各接続で返されますか(Cookieに保存されます)?
または、それらはサーバーヒープに格納されており、Cookieは非常に小さな識別子にすぎませんか?
このトピックに関する情報があれば役立ちます。
ありがとうございました
オブジェクトはシリアル化されてユーザーに送信され、各接続で返されますか(Cookieに保存されます)?
または、それらはサーバーヒープに格納されており、Cookieは非常に小さな識別子にすぎませんか?
このトピックに関する情報があれば役立ちます。
ありがとうございました
あなたは2番目の推測でそれを手に入れました。
CookieにはJSESSIONIDが含まれています。そのIDは、サーバーが維持するマップでユーザーのHttpSessionを検索するために使用されます。少なくともこれが最も一般的な方法です。サーバーがこれを実装できるより複雑な方法がありますが、Cookieで状態全体を前後にシャトルすることはそれらの1つではありません。
これにはいくつかの意味があります。まず、サーバーがダウンすると、セッション状態が失われます。次に、サーバークラスターがある場合は、ユーザーを毎回同じサーバーに接続する必要があります。そうしないと、後続のリクエスト間のセッションが失われます。最後に、誰かが他の誰かのJSESSIONIDをコピーして、そのJSESSIONIDを置き換える方法を見つけた場合、セッションハイジャックが発生する可能性があります。
Cookieには、セッション識別子(通常はJSESSIONID
)が含まれているだけです。サーバーは、この識別子をユーザーのセッションに現在保存されているデータにマップします。
データ自体はメモリに保存される場合もあれば、使用しているサーバーとその構成に応じてデータベースまたはファイルにシリアル化される場合もあります。