同一會話是否繼續,或者是當用戶使用Firefox從計算機「A」登錄時爲同一「用戶」創建的新會話。同一會話是否繼續
據我瞭解,'會話是由該服務器爲該用戶創建'。
現在,無需關閉瀏覽器選項卡中,用戶打開一個新的標籤,並進入同一個頁面[即需要用戶先登錄。
會發生什麼?
服務器是否會繼續相同的會話,使代碼識別用戶?
服務器是否會爲此請求啓動一個新會話並銷燬舊會話?
考慮同樣的問題,但現在用戶從另一個瀏覽器登錄。會發生什麼?
同一會話是否繼續,或者是當用戶使用Firefox從計算機「A」登錄時爲同一「用戶」創建的新會話。同一會話是否繼續
據我瞭解,'會話是由該服務器爲該用戶創建'。
現在,無需關閉瀏覽器選項卡中,用戶打開一個新的標籤,並進入同一個頁面[即需要用戶先登錄。
會發生什麼?
服務器是否會繼續相同的會話,使代碼識別用戶?
服務器是否會爲此請求啓動一個新會話並銷燬舊會話?
考慮同樣的問題,但現在用戶從另一個瀏覽器登錄。會發生什麼?
會話基於存儲會話ID的Cookie。所以,純粹是瀏覽器如何存儲它的cookies。
一般情況下,瀏覽器共享選項卡之間餅乾,所以用新的標籤,會話ID被保留,新的會話將不會被創建。
兩個不同的瀏覽器,不過,不分享餅乾,所以在其他瀏覽器中,創建新的會話。
也有無cookie會話。在這種情況下,會話ID存儲在URL中(例如http://www.server.com?sessionId=12345)。所以很顯然,在這種情況下,如果您打開一個新選項卡並鍵入不帶sessionId的地址,則也會創建一個新地址。作業?
用戶會話通常被保存在由Web服務器創建一個cookie,但實際上是存儲在客戶端上。如果兩個Firefox選項卡共享Cookie,則會話將在它們之間共享。但是,如果兩個選項卡不共享cookie,則會爲每個選項卡創建一個服務器會話。
會話通常不會在瀏覽器中持續存在。如果用戶打開一個新選項卡並返回到登錄頁面並再次登錄,或者他自動登錄,則取決於後端代碼的寫入方式。
這真的都取決於網站編程。但通常你可以看到標籤共享會話,但不同的瀏覽器。
會話沒有瀏覽器之間共享,且僅片(或窗口)之間共享,如果新的選項卡/窗口從當前頁面催生(除非Cookie會話經由查詢字符串處理)。當你點擊一個鏈接並在新標籤頁或窗口中打開或者選擇複製當前標籤頁/窗口時,兩個標籤頁/窗口將共享同一個會話。這依賴於瀏覽器,每個瀏覽器都可以以不同的方式實現。
這很容易測試。用Label
創建一個簡單的aspx頁面,並返回當前頁面的鏈接。在PageLoad
中執行以下操作:
if (Session["Test"] != null)
{
Session["Test"] = (int)(Session["Test"]) + 1;
}
else
{
Session["Test"] = 1;
}
yourLabel.Text = Session["Test"].ToString();
然後使用不同的方法打開頁面。使用href
和target=_blank
。 href將創建一個新的選項卡/窗口並共享會話,但不應以任何其他方式加載頁面。
如果它是一個新的選項卡,然後在同一會話將被使用(因爲瀏覽器將提供相同的會話cookie)。如果它是一個不同的瀏覽器,cookie將不會出現,並且會開始一個新的會話(假設您使用標準會話機制,其他瀏覽器中的會話將會持續)。
......作業? – STW 2010-06-29 20:24:33
哈哈沒有不回家的工作,其增加基本的瞭解 – user287745 2010-06-29 21:08:54
thanku所有的答案是有幫助的,但不幸的是可以標記只有一個答案 – user287745 2010-07-04 12:44:39