描述Cookie和Session的作用,區別和各自的應用範圍,Session工作原理
Session用於儲存每個使用者的專用資訊. 每個客戶端使用者訪問時,伺服器都為每個使用者分配一個唯一的會話ID(Session ID) . 她的生存期是使用者持續請求時間再加上一段時間(一般是20分鐘左右).Session中的資訊儲存在Web伺服器內容中,儲存的資料量可大可小.當 Session超時或被關閉時將自動釋放儲存的資料資訊.由於使用者停止使用應用程式後它仍然在記憶體中保持一段時間,因此使用Session物件使儲存使用者資料的方法效率很低.對於小量的資料,使用Session物件儲存還是一個不錯的選擇
Cookie 用於儲存客戶瀏覽器請求伺服器頁面的請求資訊,程式設計師也可以用它存放非敏感性的使用者資訊,資訊儲存的時間可以根據需要設定.如果沒有設定Cookie失效日期,它們僅儲存到關閉瀏覽器程式為止.如果將Cookie物件的Expires屬性設定為Minvalue,則表示Cookie永遠不會過期.Cookie儲存的資料量很受限制,大多數瀏覽器支援最大容量為4K,因此不要用來儲存資料集及其他大量資料.由於並非所有的瀏覽器都支援Cookie,並且資料資訊是以明文文字的形式儲存在客戶端的計算機中,因此最好不要儲存敏感的,未加密的資料,否則會影響網站的安全性
session工作原理
(1)當有Session啟動時,伺服器生成一個唯一值,稱為Session ID(好像是通過取程序ID的方式取得的)。
(2)然後,伺服器開闢一塊記憶體,對應於該Session ID。
(3)伺服器再將該Session ID寫入瀏覽器的cookie。
(4)伺服器內有一程序,監視所有Session的活動狀況,如果有Session超時或是主動關閉,伺服器就釋放改記憶體塊。
(5)當瀏覽器連入IIS時並請求的ASP內用到Session時,IIS就讀瀏覽器Cookie中的Session ID。
(6)然後,服務檢查該Session ID所對應的記憶體是否有效。
(7)如果有效,就讀出記憶體中的值。
(8)如果無效,就建立新的Session。