最近Cookieなしのセッションについて調べていたところ、サーバーでセッションが作成されるたびに、そのIDがCookieに保存され、クライアントマシンで、セッションが保存されていると大学で考えられていたという記事に出くわしました。サーバー、およびsessionIDがCookieにあり、Cookieがクライアントマシンにローカルに保存されている場合、セッションがサーバーに保存されていると言うことができますか?そうです、そのセッションはサーバーに保存されていますか?はいの場合、Cookieなしのセッションの概念は何ですか、誰かが私を説明できますか
3 に答える
セッション状態は (ほとんどの場合) サーバーに保存され、乱数 (セッション トークン) によって識別されます。
そのトークンはクライアントによって保存され、HTTP 要求とともにサーバーに送信される必要があります (サーバーが以前に彼を見たことがあり、セッションを要求に関連付けることができるようにするため)。
セッションがサーバーに保存されているとどのように言うことができますか?セッションがサーバーに保存されているということですか?
セッショントークンのみがクライアントに保存されます。これは乱数であるため、それ自体には有用な情報は含まれていません。サーバーに保存されたデータと共にのみ価値があります。
はいの場合、cookieless セッションの概念は何ですか
トークンを保存する最も簡単な方法は、Cookie を使用することです。それがクッキーが発明された理由です。別の方法として、非表示のフォーム変数を使用するか、URL の一部として Cookie をやり取りします。
セッションはサーバーに保存されます。ID に関連付けられた各セッション (ASP.NET の最も単純なセッション状態プロバイダーは、キーとして ID を持つメモリ内の単なる辞書です)。この ID はクライアントの Cookie にも保存されますが、Cookie を使用しないセッションの場合、ID は URL に保存されます ( example )。
セッション ID をテーブルのキー、セッション状態を値と考えてください。値ではなく、キーのみがクライアントに送信されます。
ASP.NET の場合、セッション状態自体は、キーと値のペアを含むディクショナリです。
標準の SQL Server セッション プロバイダーを使用している場合、上記のテーブルはASPStateTempSessions
. SessionId
は PK で、シリアライズされたものはまたは列Dictionary
に格納されます。SessionItemShort
SessionItemLong