HTTPセッションのスコープは正確には何ですか?
私はこれをグーグルで検索していますが、正解が得られないようです-セッションは「ユーザーがブラウザを閉じると」クリアされるはずですが、それは私にはわかりません-それはブラウザウィンドウを閉じるか、終了することを意味しますかブラウザアプリケーション? 2つのブラウザウィンドウを同時に開いているユーザーは、2つの異なるセッションを維持していますか?また、同じセッションの場合、ブラウザのタブは常に一部になりますか?
これは、アプリケーションでセッションを追跡する方法によって異なります。
デフォルトでは、それらは HttpOnlycookies によって追跡されます。これは、ユーザーが現在のタブを閉じても、セッションが失われないことを意味します。セッションを失ったにもかかわらずブラウザを閉じた場合。
クッキーレスモードを使用してセッションを追跡する場合(cookieless="true"
)、ASP.NETはすべてのURLにカスタムトークンを追加します。これは、ユーザーが同じブラウザーインスタンスの2つの異なるタブで2つの異なるセッションでログに記録できることを意味します。
あなたのすべての質問に対する答えは「それは依存する」です。
複数のブラウザウィンドウは、複数のセッションにすることも、同じセッションにすることもできます。これは、ブラウザの動作とウィンドウを開いた方法によって異なります。
IEには、「新しいウィンドウ」用のメニューオプションと「新しいセッション」用のメニューオプションがあります。 「新しいウィンドウ」オプションは同じセッションを維持し、「新しいセッション」オプションは異なるセッションで新しいウィンドウを開きます。また、Shiftキーを押しながらブラウザを起動すると、IE)で新しいセッションを取得できます。
すべてのセッションが終了していることを確認する必要がある場合は、すべてのブラウザウィンドウを閉じてください。
セッションCookieは通常、ブラウザ全体が終了すると削除されます。複数のタブ/ウィンドウが同じCookieを共有するため、それらのタブ/ウィンドウは同じセッションを使用します。
ただし、アプリケーションはURLを介してセッション識別子を渡すこともできます。この場合、有効なセッションIDを持つリンクを介して開かない限り、すべてのタブ/ウィンドウに独自のセッションがあります。