淺談cookie與session兩者的關係。

javaweb開發中Servlet三大域對象的應用(request請求、session會話、application應用)。jsp還有一個。
cookie和session都是會話跟蹤技術。
首先cookie是存在客戶端的,session存在 服務端的。
兩者都可以存放東西,但是cookie不安全,一般只存放簡單數據。比如京東的購物車。
cookie只是在相同請求路徑下會去攜帶。
兩者都是可以設置過期時間的,這裏我主要說一下兩者的關係。
當客戶端第一次請求服務端,服務端會生成一個session,還有一個32個隨機字符的字符串,以32字符串id爲key,session對象爲value,存放到我們客戶端。並且以jSessionid爲key,32個隨機字符的字符串爲value發送給客戶端,客戶端接收,第二次請求的時候通過cookie來請求客戶端,客戶端會根據這個jSessionid的值在服務端的session的一個map對象裏面去找。這樣就實現了會話跟蹤技術。
然後說一下爲什麼cookie客戶端禁用後會引發的問題
①當客戶端禁用後cookie之後,每次請求服務端都會生成一個session,生成一個session是耗費資源的,那樣你服務端的系統性能就會下降。也不會跟蹤會話,對於客戶操作也不便。
②客戶端禁用cookie後,重定向和非重定向,會對請求路徑重新編碼,將jsessionid直接放到請求路徑之後,這樣是及其不安全的,因爲這樣別人就可以通過這個id跟蹤到你之前的會話。
最後建議,在符合條件的情況下,域屬性空間越小越好。

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