Cookie同Session的關係

Cookie同Session的關係

  1. asp.net中Session可以採用cookie 和cookieless兩種方法,cookieless方式是將SessionID放在URL中在客戶端和服務端中來回傳遞,不需要用到cookie,在這裏不討論這個方式。

  2. 在asp.net中客戶第一次請求一個URL,服務器給這個客戶生成一個SessionID,並以非永久性的 Cookie發送到客戶端。

  3. 非永久性的 Cookie只有在瀏覽器關閉後這些Cookie才隨之消失,Session的超時判斷是這樣的過程:

  3.1 第一次客戶端訪問服務器,會得到一個SessionID,以非永久性的 Cookie發送到客戶端。

  3.2 在這個瀏覽器關閉之前訪問這個URL,瀏覽器都會把這個SessionID發送到服務端,服務端根據SessionID來維持對應此客戶的服務端的各種狀態(就是Session中保存的各種值),在web應用程序中可以對這些Session進行操作。

  3.3 服務端維護此SessionID的過期時間,IIS中可以設置Session的超時時間。每次請求都將導致服務端將此SessioID的過期時間延長一個設置的超時時間。

  3.4 當服務端發現某個SessionID已經過時,即某個客戶已經在設置的超時時間內沒有再次訪問此站點,即將此SessionID,連同跟此SessionID相關的所有Session變量刪除。

  3.5 客戶端的瀏覽器未關閉前,並不知道服務端已經將這個SessionID刪除,客戶端依舊發送此SessionID的cookie到服務端,只是此時的服務端已經不認識此SessionID了,會將此用戶當做新用戶,再次分配一個新的SessionID。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章