session、localStorage、Cache-Control

1.什么是Cookie 4k
一、服務(wù)器通過(guò)Set-Cookie頭給客戶(hù)端一串字符串
二、客戶(hù)端每次訪(fǎng)問(wèn)相同域名的網(wǎng)頁(yè)時(shí),必須帶著這段字符串
三、客戶(hù)端要在一定時(shí)間內(nèi)保存這個(gè)Cookie
四、cookie默認(rèn)在用戶(hù)關(guān)閉頁(yè)面后失效 后臺(tái)代碼可以任意設(shè)置Cookie的過(guò)期時(shí)間
2.什么是session?
session 依賴(lài)于cookie

服務(wù)器給客戶(hù)端一個(gè)sessionId,這個(gè)sessionId對(duì)應(yīng)著一小塊內(nèi)存,每次用戶(hù)訪(fǎng)問(wèn)服務(wù)器的時(shí)候,服務(wù)器就 通過(guò)sessionID去讀取對(duì)應(yīng)的session,從而獲得用戶(hù)的隱私信息

這個(gè)sessionID是個(gè)隨機(jī)數(shù),沒(méi)有人知道,因此無(wú)法被讀取,安全性很好


·

3.什么是localstorage?

session是服務(wù)器上面的hash表 而localstorage是瀏覽器中的hash表
localStorage 持久化存儲(chǔ)

localStorage的三個(gè)API
(1)getItem() 獲取信息
(2)setItem() 設(shè)置信息
(3)clear() 清空


image.png

特點(diǎn):
一、localStorage與HTTP無(wú)關(guān)
二、HTTP不會(huì)帶上localStorage的信息
三、只有相同域名的頁(yè)面才能互相讀取localStorage(沒(méi)有同源限制那么嚴(yán)格)
四、每個(gè)域名localStorage最大存儲(chǔ)量為5M左右,每個(gè)瀏覽器不一樣
五、常用場(chǎng)景:記錄有沒(méi)有提示過(guò)用戶(hù),(沒(méi)有用的信息,不能記錄密碼)
六、LocalStorage 永久有效,除非用戶(hù)清理緩存

4.什么是sessionStorage?
一二三四同上
五、sessionStorage 在用戶(hù)關(guān)閉頁(yè)面(會(huì)話(huà)結(jié)束)后就失效

http緩存

5.Cache-Control

Cache-Control: max-age=<seconds>

后臺(tái)設(shè)置,多少秒內(nèi)可以不用再請(qǐng)求,這段時(shí)間內(nèi)并沒(méi)有真正的請(qǐng)求直接從緩存里面讀取內(nèi)容

image.png

一般首頁(yè)不設(shè)置緩存時(shí)間,因?yàn)槿绻O(shè)置了,代碼更新后用戶(hù)不能夠直接體驗(yàn)到

收獲 終于知道為什么webpack要設(shè)置hash值了

因?yàn)橛衏ache-control 這一功能,只要代碼一直不更新,第一次請(qǐng)求過(guò)后,用戶(hù)可以不用通過(guò)繼續(xù)訪(fǎng)問(wèn)服務(wù)器,直接在本地緩存里面讀取就行,這個(gè)時(shí)間可以設(shè)置一年甚至更多
如果代碼更新發(fā)版的話(huà)就更新一下hash值,用戶(hù)請(qǐng)求發(fā)現(xiàn)hash值路徑不一樣就會(huì)訪(fǎng)問(wèn)新的代碼。

6.Expires
這個(gè)是老技術(shù),cache-control是這項(xiàng)技術(shù)的升級(jí)
區(qū)別在于這個(gè)技術(shù) 是設(shè)置緩存截止的具體時(shí)間,cache-control是設(shè)置緩存可以持續(xù)多長(zhǎng)時(shí)間
但是這個(gè)技術(shù)有一個(gè)不安全的地方在于: 所設(shè)置的時(shí)間是用戶(hù)本地的時(shí)間,有可能用戶(hù)本地時(shí)間錯(cuò)亂,那么緩存的有效期將都會(huì)不同

7.md5 摘要算法
是將文件內(nèi)容轉(zhuǎn)換成為字符串,如果兩次的MD5值不一樣,說(shuō)明下載的文本有差異,而且內(nèi)容差異越小,字符串差異越大

e-tag 就是利用MD5這一特點(diǎn)
和cach-control類(lèi)似,判斷MD5值是否有改變,沒(méi)改變的話(huà)就沒(méi)有響應(yīng)返回了
但是區(qū)別在于,緩存直接不請(qǐng)求了,而e-tag還是請(qǐng)求的,只不過(guò)判斷相同后,不返回罷了

?著作權(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)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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