2012-11-03 30 views
0

我正在修改JSP & ASP.Net中的會話對象的概念。 我很困惑,'當一個實際的會話對象被創建?' 直到最近我還以爲它是在用戶登錄到他的帳戶時創建的,但現在我讀到了當用戶訪問您網站上的任何頁面時隱式創建的書籍。JSP/ASP會話對象會話和網站用戶帳戶會話之間的區別?他們不一樣嗎?

那麼它什麼時候才真正創建? JSP會話與網站用戶帳戶會話有什麼不同?

如果後者是正確的,當用戶實際登錄到他的賬戶並且前一個會話被銷燬時創建第二個新會話? 例如:購物網站可能允許用戶選擇多個項目&'添加到我的購物車'。在他登錄後,這些數據會發生什麼變化。在銷燬初始會話後是否會在內部創建新會話?

如果這看起來很混亂,那麼您可以指定Session是如何在真實世界的系統中實現的(因爲我是學生)?會議什麼時候開始?哪些數據存儲在它中?您設定的典型超時時間是什麼,爲什麼?

我的研究:JSP會話是抽象的概念,用戶帳戶會話是特定於實現的。兩者都是不同

回答

1

會話通常由

  • 產生唯一的令牌,
  • 創建會話對象來保存會話數據並將其存儲在地圖中,由唯一令牌索引,
  • 實施
  • 將包含此令牌的會話cookie發送給瀏覽器。

每次來自此瀏覽器的請求都包含cookie,並且容器可以從其內部會話映射中檢索相應的會話。

所以是的,會話可以在用戶通過身份驗證之前存在,甚至根本沒有身份驗證。當用戶通過認證時,他保持相同的會話。唯一的區別是您通常在會話中添加用戶標識,以便將用戶與會話相關聯。

例如,您可以讓匿名用戶在會話中購物並將其添加到購物車中,並且只需要他們在需要付款(以檢索其存儲的帳戶)時進行身份驗證。或者你可以讓他們將物品添加到他們的購物車中,並且從不認證它們。

+0

考慮到會話和用戶身份驗證的這種差異,像GMAIL這樣的電子郵件站點是否會從創建普通用戶「會話」中受益?你能否提到幾個沒有從Sessions中受益的網站? –

+0

google.com不需要任何會話。您前往網站,執行搜索,導航至結果。它不需要存儲任何與用戶相關的狀態。 –

+0

繼續您的原始帖子,當用戶「註銷」時,僅僅是從會話中刪除的用戶標識?還有其他事情發生嗎? –