天天看點

HTTP進階(Cookie,Session ,LocalStorage )Cookie 和 Session 的差別Cookie 和 LocalStorage 的差別LocalStorage 和 SessionStorage 的差別Cache-Control: max-age=1000 緩存 與 ETag 的「緩存」有什麼差別?

Cookie

  1. 伺服器通過 Set-Cookie 頭給用戶端一串字元串
  2. 用戶端每次通路相同域名的網頁時,必須帶上這段字元串
  3. 用戶端要在一段時間内儲存這個Cookie
  4. Cookie 預設在使用者關閉頁面後就失效,背景代碼可以任意設定 Cookie 的過期時間
  5. 大小大概在 4kb 以内

Session

  1. 将 SessionID(随機數)通過 Cookie 發給用戶端
  2. 用戶端通路伺服器時,伺服器讀取 SessionID
  3. 伺服器有一塊記憶體(哈希表)儲存了所有 session
  4. 通過 SessionID 我們可以得到對應使用者的隐私資訊,如 id、email
  5. 這塊記憶體(哈希表)就是伺服器上的所有 session

LocalStorage

  1. LocalStorage 跟 HTTP 無關
  2. HTTP 不會帶上 LocalStorage 的值
  3. 隻有相同域名的頁面才能互相讀取 LocalStorage(沒有同源那麼嚴格)
  4. 每個域名 localStorage 最大存儲量為 5Mb 左右(每個浏覽器不一樣)
  5. 常用場景:記錄有沒有提示過使用者(沒有用的資訊,不能記錄密碼)
  6. LocalStorage 永久有效,除非使用者清理緩存

SessionStorage(會話存儲)

1、2、3、4 同上

5、SessionStorage 在使用者關閉頁面(會話結束)後就失效。

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 的「緩存」,是傳回請求響應體為空