session cookies,sessionStorage和localStorage的區別

背景

在html5出來之前,cookie- 直作爲本地存儲的一個方法來使用。後來html5提供了-種在客戶端本地保存數據的功能,它就是Web Storage,具體來說,Web Storage又分爲兩種:localStorage和sessionStotage在客戶端存儲數據,WebStorage的目的是克服由cookie所帶來的一些限制,當數據需要被嚴格控制在客戶端時,不需要持續的將數據發回服務器。

cookie

cookie英文餅乾,顧名思義,大小應該非常小,cookie非常小,它的大小限制在4kb左右,是網景公司的前僱員在1993年發明。它的主要用於保存登陸信息,比如你登陸某個網站市場可以看到記住密碼,這就是通過在cookie中存入一段辨別用戶身份的數據來實現的。

localStorage

localStorage是HTML 5標準中新加入的技術,當然早在IE6時代就有一個userData的東西用於本地存儲,而當時考慮到瀏覽器的兼容性,更通用的方案是使用flash。如今localStorage被大多數瀏覽器所支持。

sessionStorage

sessionStorage.與localStorage的接類似,但保存數據的生命週期與localStorage不同,做過後端的同學都知道Session這個詞,翻譯過來就是會話。而sessionStorage是前端的一 個概念。它只是可以將一部分數據在當前會話中保存下來,刷新頁面數據依舊存在。但是頁面關閉後,sessionStorage中的數據就會被清空。

cookie和webStorage對比

  1. 數據上的生命週期的不同
    Cookie一般由服務器生成,可設置失效時間,如果在瀏覽器端生成cookie,默認是關閉後失效。localStorage除非被永久清除,否則永久保存。
    sessionStorage僅在當前會話會有效,關閉頁面或瀏覽器後被清除
  2. 存放數據的大小不同
    Cookie -般爲4kb
    localStorage和sessionStorage一般爲5M或更大
  3. 與服務器端通信不同
    Cookie每次都會攜帶HTTP頭中,如果使用cookie保存過多數據會帶來性能問題
    localStorage和sessionStorage僅在客戶端(即瀏覽器)中保存,不參與和服務器的通信。
  4. 作用域不同
    sessionStorage不在不同的瀏覽器窗口中共享,即使是同一個頁面;
    localstorage在所有同源窗口中都是共享的;也就是說只要瀏覽器不關閉,數據仍然存在
    cookie: 也是在所有同源窗口中都是共享的.也就是說只要瀏覽器不關閉,數據仍然存在

session

是在服務端保存的一個數據結構,用來跟蹤用戶的狀態,這個數據可以保存在集羣、數據庫、文件中

cookie和session對比:

  • cookie數據存放在客戶的瀏覽器上,session數據放在服務器上
  • cookie不是很安全,別人可以分析存放在本地的cookie並進行cookie欺騙,考慮到安全應當使用session。用戶驗證這種場合一般會用 session
  • session保存在服務器,客戶端不知道其中的信息;反之,cookie保存在客戶端,服務器能夠知道其中的信息
  • session會在一定時間內保存在服務器上,當訪問增多,會比較佔用你服務器的性能,考慮到減輕服務器性能方面,應當使用cookie
  • session中保存的是對象,cookie中保存的是字符串
  • session不能區分路徑,同一個用戶在訪問一個網站期間,所有的session在任何一個地方都可以訪問到,而cookie中如果設置了路徑參數,那麼同一個網站中不同路徑下的cookie互相是訪問不到的
  • Cookie: 是客戶端保存用戶信息的一種機制,用來記錄用戶的一些信息,也是實現Session的一種方式。

*形象類比~~~~*

客戶端和服務端之間的通信交流,可以這樣簡單理解: 比如當你在個推技術分享沙龍上覺得某位講師講得很好,在會後問了他幾個問題,他對你這些問題進行了回答,這就是一個會話。但這個講師太受歡迎,於是工作人員收集問題,並給每個提問者一個號碼牌,講師按照號碼牌依次給出相應解答並告訴相應的人。這就是Session。一段時間後,當你再次遇見這位講師,他發現你身上有上次回覆你的答案,知曉你是那個好學的程序猿。於是你欣喜若狂,哇塞,講師居然認出我了,這就是Cookie,你的小甜點。客戶端好比聽課的技術愛好者,服務端就是這位講師。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章