HTTP高級(Cookie,Session ,LocalStorage )

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(會話存儲)服務器

一、二、三、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 的「緩存」,是返回請求響應體爲空
相關文章
相關標籤/搜索