web應(yīng)用的本地儲存常用的方法有兩種征候,一種是利用cookie進行儲存澄成,另一種是利用HTML5儲存的方式來實現(xiàn)。
早期發(fā)明的cookie可以用來在本地持久化儲存少量的數(shù)據(jù)趁蕊,但由于cookie不能大量儲存數(shù)據(jù)槐壳,并存在潛在的安全問題等原因然低,又發(fā)明了新的稱為HTML5儲存的本地儲存方法。無論用戶離開web站點還是關(guān)閉瀏覽器务唐,本地儲存的數(shù)據(jù)依舊會存在雳攘。
cookie
cookie是服務(wù)器發(fā)送到瀏覽器并保存在本地的一小塊數(shù)據(jù)。一般用來辨別用戶身份和跟蹤用戶行為枫笛。
當我們勾選了記住密碼后我們在下次登錄時不用密碼就能自動登錄了吨灭。原因是在上次登錄時服務(wù)器發(fā)送了用戶名加密碼的某種加密形式到瀏覽器,再次登錄的時候瀏覽器直接發(fā)送該cookie到服務(wù)器進行驗證刑巧。
cookie可以跟蹤用戶的行為喧兄。比如訪問時間,訪問的頁面等啊楚,以便提供個性化服務(wù)吠冤。
cookie的特點
- 生存周期。cookie保存在瀏覽器或本地硬盤上恭理,cookie有一定的生存周期拯辙,超出周期就會被清除。
- 數(shù)量和長度的限制颜价。一個cookie的長度不能超過4KB涯保,同一域名下的cookie數(shù)量一般也有限制。
- 用戶選擇性使用周伦。客戶端可以選擇禁用cookie夕春。
- 存在一定的安全問題。在HTTP請求中cookie是明文的专挪,可能被跨站請求攻擊及志。可通過加密和安全傳輸技術(shù)來解決這種問題狈蚤,另外最好不要用cookie保存私密信息困肩。
- 額外開銷。每次發(fā)送HTTP請求都會攜帶cookie脆侮,可能會造成不必要的浪費。
Web Storage
HTML5儲存又稱為Web Storage勇劣,它提供了一種以鍵值對的形式將數(shù)據(jù)儲存在本地的方式靖避。Web Storage包含sessionStorage和localStorage兩種機制潭枣。
Web Storage的特點
- 較大的儲存空間。Web Storage能提供5MB的存儲空間幻捏,相比cookie而言要大上許多盆犁。
- 不與服務(wù)器發(fā)生交互。Web Storage中儲存的數(shù)據(jù)不會隨每次HTTP請求發(fā)送到服務(wù)器篡九。
- 基于鍵值對谐岁。儲存和檢索都是基于指定的鍵名。
- 封裝了一些方法榛臼。封裝了setItem伊佃、getItemh和removeItem等方法。
- sessionStorage 針對一個session的數(shù)據(jù)儲存沛善,在頁面會話時期可用航揉,即只要瀏覽器打開就可使用。
- localStorage 沒有時間的限制金刁,瀏覽器關(guān)閉重新打開仍然可用帅涂。