什么是Sesson?
簡單說就是一個會話級的cookie,外加服務器端內存中一組散列表。
當你關閉瀏覽器的時候,這個cookie將消失。
這個cookie不寫在磁盤上,而是存在於瀏覽器緩存。
關於Session的傳說
傳說中,Web應用程序中的Session和Application保存服務器端,而cookie保存在客戶端。
其實Session同時存在於客戶端與服務器端。
開發中如果你已經寫了一個Session,打開火狐瀏覽器,清理cookie的時候你會找到一個session_id(java開發者會看到JSESSIONID)的cookie,刪除他后Session將失效。
如果你打開的是IE瀏覽器,清理cookie后Session依然存在,我不知道IE是怎么處理的,也許它只從磁盤里去清理。
Session實現原理
1、創建Session的時候,服務器將生成一個唯一的sessionid然后用它生成一個關閉瀏覽器就會失效的cookie。
2、然后再將一個與這個sessionid關聯的數據項加入散列表。
例如這樣一段代碼:Session["UserName"]=23;
假設sessionid為123那么散列表中會追加一行
sessionid username
123 23
3、當瀏覽器端提交到服務器時,會通過sessionid=123去散列表中尋找屬於該用戶的Session信息。