session和cookie理解

session和cookie理解

Cookie通過在客戶端記錄信息確定用戶身份,Session通過在服務器端記錄信息確定用戶身份。
Cookie對象使用key-value屬性對的形式保存用戶狀態,一個Cookie對象保存一個屬性對,一個request或者response同時使用多個Cookie
如果不設置 過期時間,則表示這個 Cookie生命週期爲 瀏覽器會話期間 , 只要關閉瀏覽器,cookie就消失了.
一般保存在 內存,不在硬盤;如果設置了過期時間, 瀏覽器會把cookie保存在硬盤上,關閉再打開瀏覽器, 這些cookie 依然有效直到 超過的設置過期時間;

session 存儲在Server段的內存進程中的,而這個進程相當不穩定,經常會重啓,這樣重啓的話,就會造成Session失效,用戶就必須要重新登錄,用戶體驗相當差
當程序需要爲某個客戶端的請求創建一個session時,服務器首先檢查這個客戶端的請求裏是否已包含了一個session標識(稱爲session id),如果已包含則說明以前已經爲此客戶端創建過session,服務器就按照sessionid把這個session檢索出來….使用(檢索不到,會新建一個),如果客戶端請求不包含session id,則爲此客戶端創建一個session並且生成一個與此session相關聯的session id,
Session ID的保存方法:[1] 使用Cookie來保存,服務器通過設置Cookie的方式將Session ID發送到瀏覽器。[2]URL地址重寫是對客戶端不支持Cookie的解決方案。URL地址重寫的原理是將該用戶Session的id信息重寫到URL地址中。服務器能夠解析重寫後的URL獲取Session的id。
[3] 第三種方式是在頁面表單裏面增加隱藏域,這種方式實際上和第二種方式一樣,只不過前者通過GET方式發送數據,後者使用POST方式發送數據

cookie 和session 的區別:
1.cookie數據存放在客戶的瀏覽器上,session數據放在服務器上.
       簡單的說,當你登錄一個網站的時候,如果web服務器端使用的是session,那麼所有的數據都保存在服務器上面,
客戶端每次請求服務器的時候會發送 當前會話的session_id,服務器根據當前session_id判斷相應的用戶數據標誌,以確定用戶是否登錄,或具有某種權限。
2.cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙考慮到安全應當使用session
3.session會在一定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能考慮到減輕服務器性能方面,應當使用COOKIE
4.單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。Session對象沒有對存儲的數據量的限制,其中可以保存更爲複雜的數據類型
5.session很容易失效,用戶體驗很差;

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