cookie的來源是http協議是無狀態的協議,因此發明了cookie用作保存狀態的額外手段,主要用於判斷用戶是否登錄以及保存登錄信息。它有單個特色:
(1)一般由服務器端生成,存儲在客戶端,能夠設置失效時間(max-age屬性,以前是expire)
(2)每次請求都會附帶cookie一塊兒被傳送
(3)容量很是小,被限制在4kb左右。第二個特色很好解釋了爲何容量被限制地這麼小程序員
SessionStorage和LocalStorage是HTML5的新特性,統稱爲web storage,能夠容許瀏覽器在用戶本地存儲數據,但不能像cookie那樣參與和服務器端的通訊,所以它們倆的容量也比較大,都是5M。web
LocalStorage對象存儲的是沒有截止日期的數據,當瀏覽器被關閉時數據也不會被刪除,除非用戶主動刪除,不然這些數據是一直可用的瀏覽器
SessionStorage直譯過來是會話存儲,顧名思義,其數據有效期僅限於同一個會話期間,也就說關閉一個具體的瀏覽器標籤頁,該頁下的存儲與SessionStorage就會被刪除服務器
區別:(1)容量的區別,cookie只有4kb,而web storage有5M
(2)有效期的區別,cookie能夠設置過時時間,SessionStorage在一個回話期間有效,頁面關閉後就失效了,LocalStorage永久有效。
(3)cookie每次都會被附加在http頭中,參與客戶端與服務器的通訊,而web Storage只能用於本地存儲,不能用於通訊。
(4)易用性有區別,程序員須要本身封裝操做cookie的函數,較爲麻煩,而LocalStorage和SessionStorage有不少已經封裝好的函數,好比setItem(),getItem(),removeItem()等等,也能夠再次封裝以便對Array和Object有更好的支持。cookie
web storage是爲了更大的存儲容量設計的,cookie主要是用於客戶端和服務器端通訊的。 曾經還使用 Cookie 來保存用戶在電商網站的購物車信息,但有了 localStorage,彷佛在這個方面也能夠給 Cookie 放個假了~
web storage也能勝任其餘一些工做。好比HTML5遊戲一般會產生一些本地數據,localStorage 也是很是適用的。
若是遇到一些內容特別多的表單,爲了優化用戶體驗,可能要把表單頁面拆分紅多個子頁面,而後按步驟引導用戶填寫。這時候 sessionStorage 的做用就發揮出來了。session