熟悉Cookie&session&localStorage&sessionStorage

1. cookie 與 session 區(qū)別

  1. Cookie放在瀏覽器上(客戶端)的用戶數(shù)據(jù), Session放在服務(wù)器上的用戶數(shù)據(jù)
  2. cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙,考慮到安全應(yīng)當(dāng)使用session。
  3. session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上。當(dāng)訪問(wèn)增多,會(huì)比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用cookie。
  4. 單個(gè)cookie保存的數(shù)據(jù)不能超過(guò)4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie
  5. session中保存的是對(duì)象,cookie中保存的是字符串
  6. session不能區(qū)分路徑,同一個(gè)用戶在訪問(wèn)一個(gè)網(wǎng)站期間,所有的session在任何一個(gè)地方都可以訪問(wèn)到,而cookie中如果設(shè)置了路徑參數(shù),那么同一個(gè)網(wǎng)站中不同路徑下的cookie互相是訪問(wèn)不到的
區(qū)別圖:
cookie&session.png

2. 介紹 Session

  1. 會(huì)話:指我們?cè)L問(wèn)網(wǎng)站的一個(gè)周期,比如我們打開(kāi)百度,在百度這個(gè)網(wǎng)站上點(diǎn)擊各個(gè)網(wǎng)頁(yè),然后關(guān)閉瀏覽器,這一個(gè)過(guò)程稱為周期。session在計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用中被稱為“會(huì)話控制”。
  2. 客戶端瀏覽器訪問(wèn)網(wǎng)站的時(shí)候的過(guò)程:
session過(guò)程.png
session過(guò)程2.png
session過(guò)程3.png
session過(guò)程4.png
session過(guò)程5.png

3. session 的后端實(shí)現(xiàn)

session實(shí)現(xiàn).png

4. cookie 的介紹與使用

  1. 當(dāng)瀏覽一個(gè)網(wǎng)站的時(shí)候,網(wǎng)站返回給你一個(gè)Session Cookie和一個(gè)RememberMe Cookie,Session Cookie很好理解,就是為了此次的對(duì)話,一旦關(guān)閉了瀏覽器或者超時(shí)了Session Cookie就沒(méi)用了。但是RememberMe Cookie不太一樣,Shiro默認(rèn)的RememberMe Cookie的時(shí)長(zhǎng)是一年,所以不用擔(dān)心這個(gè)Cookie的情況。RememberMe Cookie實(shí)際就是Shiro把這個(gè)用戶的信息加密一下放到cookie里面,下次就可以根據(jù)這個(gè)cookie來(lái)進(jìn)行判斷這是哪個(gè)用戶。
cookie實(shí)現(xiàn).png

這樣就會(huì)在客戶端 看到一個(gè) cookie 叫做 remenberMe 了 ,瀏覽器關(guān)閉了 也是會(huì)存在的,而且 有效時(shí)間的是 7 天 。RememberMe這個(gè)參數(shù)設(shè)置為true后,在登陸的時(shí)候就會(huì)在客戶端設(shè)置remenberme 的相應(yīng)cookie。當(dāng)實(shí)現(xiàn)了記住我功能后,下次用戶在進(jìn)行訪問(wèn)時(shí),就不再需要登錄驗(yàn)證了

5. Cookie簡(jiǎn)介

  1. HTTP Cookie簡(jiǎn)稱cookie,在HTTP請(qǐng)求發(fā)送 Set-Cookie HTTP頭作為響應(yīng)的一部分。通過(guò)name=value的形式存儲(chǔ)
  2. cookie的構(gòu)成:
    • 名稱:name(不區(qū)分大小寫(xiě),但最好認(rèn)為它是區(qū)分的)
    • 值:value(通過(guò)URL編碼:encodeURIComponent)
    • 路徑
    • 失效時(shí)間:默認(rèn)是瀏覽器關(guān)閉
    • 安全標(biāo)志:設(shè)置安全標(biāo)志后只有SSL連接的時(shí)候才發(fā)送到服務(wù)器
  3. cookie的作用:主要用于保存登錄信息
  4. 生命周期:在設(shè)置的cookie過(guò)期時(shí)間之前一直有效,即使窗口或?yàn)g覽器關(guān)閉。與服務(wù)器端通信:每次都會(huì)攜帶在HTTP頭中,如果使用cookie保存過(guò)多數(shù)據(jù)會(huì)帶來(lái)性能問(wèn)題

6. sessionStorage 與 localStorage

sessionStorage:
  1. sessionStorage是Storage類型的一個(gè)對(duì)象,擁有clear(),getItem(name),key(index),removeItem(name),setItem(name,value)方法
  2. sessionStorage對(duì)象存儲(chǔ)特定于某個(gè)會(huì)話的數(shù)據(jù),也就是該數(shù)據(jù)只保持到瀏覽器關(guān)閉
  3. 將數(shù)據(jù)保存在session對(duì)象中。所謂session,是指用戶在瀏覽某個(gè)網(wǎng)站時(shí),從進(jìn)入網(wǎng)站到瀏覽器關(guān)閉所經(jīng)過(guò)的這段時(shí)間,也就是用戶瀏覽這個(gè)網(wǎng)站所花費(fèi)的時(shí)間。session對(duì)象可以用來(lái)保存在這段時(shí)間內(nèi)所要求保存的任何數(shù)據(jù)
  4. sessionStorage為臨時(shí)保存
localStorage:
  1. localStorage也是Storage類型的一個(gè)對(duì)象
  2. 在HTML5中l(wèi)ocalStorage作為持久保存在客戶端數(shù)據(jù)的方案取代了globalStorage(globalStorage必須指定域名)
  3. localStorage會(huì)永久存儲(chǔ)會(huì)話數(shù)據(jù),除非removeItem,否則會(huì)話數(shù)據(jù)一直存在
  4. 將數(shù)據(jù)保存在客戶端本地的硬件設(shè)備(通常指硬盤,也可以是其他硬件設(shè)備)中,即使瀏覽器被關(guān)閉了,該數(shù)據(jù)仍然存在,下次打開(kāi)瀏覽器訪問(wèn)網(wǎng)站時(shí)仍然可以繼續(xù)使用
  5. localStorage為永久保存

7. 總結(jié) cookie 與 session 區(qū)別

  1. cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上
  2. cookie不是很安全,別人可以分析存放在本地的cookie并進(jìn)行cookie欺騙,考慮到安全應(yīng)當(dāng)使用session
  3. session會(huì)在一定時(shí)間內(nèi)保存在服務(wù)器上,當(dāng)訪問(wèn)增多,會(huì)比較占用你服務(wù)器的性能,考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用cookie
  4. 單個(gè)cookie保存的數(shù)*據(jù)不能超過(guò)4K,很多瀏覽器都限制一個(gè)站點(diǎn)最多保存20個(gè)cookie
  5. 建議將登錄信息等重要信息存放為session,其他信息如果需要保留,可以放在cookie中
  6. session保存在服務(wù)器,客戶端不知道其中的信心;cookie保存在客戶端,服務(wù)器能夠知道其中的信息
  7. session中保存的是對(duì)象,cookie中保存的是字符串
  8. session不能區(qū)分路徑,同一個(gè)用戶在訪問(wèn)一個(gè)網(wǎng)站期間,所有的session在任何一個(gè)地方都可以訪問(wèn)到,而cookie中如果設(shè)置了路徑參數(shù),那么同一個(gè)網(wǎng)站中不同路徑下的cookie互相訪問(wèn)不到
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容