2012-02-21 18 views
1

最近cookielessセッションについて掘り下げていましたが、セッションがサーバー上に作成されるたびに、IDがクライアントマシンのCookieに格納されている私の大学ではセッションがサーバーに保存されていると思っていました。セッションIDがクッキー内にあり、クッキーがクライアントマシンにローカルに保存されていれば、セッションはサーバーに保存されていますはいの場合は、クッキーレスセッションの概念は何ですか、誰でも私を説明することができますasp.netのCookielessセッション

答えて

5

セッション状態は(ほぼ常に)サーバーに格納され、乱数、セッショントークンによって識別されます。

このトークンはクライアントによって保存され、HTTPリクエストと共にサーバーに送信される必要があります(サーバーは以前に見たことを思い出してセッションを要求に関連付けます)。

どのようにそのセッションがサーバーに格納されていると言うことができますか、そのセッションはサーバーに格納されますか?

セッショントークンのみがクライアントに格納され、乱数であるため、それ自体に有用な情報は含まれません。これは、サーバーに格納されているデータと一緒になるだけで有益になります。

はいその後、クッキーレスセッション

クッキーを使用しているトークンを保存する最も簡単な方法の概念は何である場合。それはクッキーが発明されたものです。代替案は隠しフォーム変数を使用して、またはURLの一部としてクッキーを前後に渡しています。

1

セッションはサーバーに格納されます。 IDに関連付けられた各セッション(ASP.NETの最も単純なセッション状態プロバイダは、IDをキーとしてメモリ内の単なる辞書です)。このIDはクライアントのクッキーにも格納されますが、Cookieのないセッションの場合は、URLにIDが格納されます(example)。

0

セッションIDをテーブルのキーと見なし、セッションの状態を値と見なします。キーだけがクライアントに送信され、値は送信されません。

ASP.NETの場合、セッション状態自体は、キーと値のペアを含む辞書です。

標準のSQL Serverセッションプロバイダを使用している場合、上記の表はASPStateTempSessionsと呼ばれます。 SessionIdはPKであり、シリアライズされたDictionaryは、SessionItemShortまたはSessionItemLongカラムのいずれかに格納されます。

関連する問題