Cookie瀏覽器
- 服務器經過 Set-Cookie 頭給客戶端一串字符串
- 客戶端每次訪問相同域名的網頁時,必須帶上這段字符串
- 客戶端要在一段時間內保存這個Cookie
- Cookie 默認在用戶關閉頁面後就失效,後臺代碼能夠任意設置 Cookie 的過時時間
- 大小大概在 4kb 之內
Session緩存
- 將 SessionID(隨機數)經過 Cookie 發給客戶端
- 客戶端訪問服務器時,服務器讀取 SessionID
- 服務器有一塊內存(哈希表)保存了全部 session
- 經過 SessionID 咱們能夠獲得對應用戶的隱私信息,如 id、email
- 這塊內存(哈希表)就是服務器上的全部 session
LocalStorage安全
- LocalStorage 跟 HTTP 無關
- HTTP 不會帶上 LocalStorage 的值
- 只有相同域名的頁面才能互相讀取 LocalStorage(沒有同源那麼嚴格)
- 每一個域名 localStorage 最大存儲量爲 5Mb 左右(每一個瀏覽器不同)
- 經常使用場景:記錄有沒有提示過用戶(沒有用的信息,不能記錄密碼)
- LocalStorage 永久有效,除非用戶清理緩存
SessionStorage(會話存儲)服務器
一、二、三、4 同上cookie
五、SessionStorage 在用戶關閉頁面(會話結束)後就失效。session
Cookie 和 Session 的區別
- cookie機制採用的是在客戶端保持狀態的方案,而session機制採用的是在服務器端保持狀態的方案。
- cookie數據存放在客戶的瀏覽器上,session數據放在服務器上。
- cookie不是很安全, 能夠被篡改, 考慮到安全應當使用session。
- 單個cookie保存的數據通常不超過4K,而session的內存比較大
- 通常將登錄信息等重要信息存放爲SESSION, 免登錄功能數據就能夠放在COOKIE中
Cookie 和 LocalStorage 的區別
- Cookie會被瀏覽器帶到服務器; 而LocalStorage與HPPT無關。
- 單個Cookie保存的數據通常不超過4K;每一個域名LocalStorage最大存儲量爲5MB左右。
- 客戶端在必定時間內保存Cookie,關閉頁面後失效;LocalStorage永久有效,除非清除緩存。
LocalStorage 和 SessionStorage 的區別
- LocalStorage永久有效,除非清除緩存。SessionStorage在頁面關閉後失效。
Cache-Control: max-age=1000 緩存 與 ETag 的「緩存」有什麼區別?
- Cache-Control: max-age=1000 緩存,是1000秒內不返回請求
- ETag 的「緩存」,是返回請求響應體爲空