cookie,session,sessionStorage和localStorage

cookie,session,sessionStorage和localStorage的區別?

1.cookie

保存位置:瀏覽器端,存儲內容只接受String類型瀏覽器

若是設置過時時間,保存在硬盤中,關閉瀏覽器後cookie數據仍然存在,直到過時事件結束才消失。安全

若是未設置過時時間,保存在內存中,生命週期隨瀏覽器的關係而結束,這種cookie簡稱爲會話cookie。服務器

cookie原理:cookie

應用場景:

1)判斷用戶是否登陸過網站,以便於下次登陸時可以實現自動登陸(或者記住密碼);session

2)保存上次查看的頁;網站

3)瀏覽次數。cdn

cookie缺點:blog

1)存儲小:單個cookie保存的數據不能超過4kb;生命週期

2)安全性低:別人能夠分析存放在本地上的cookie並進行cookie欺騙;事件

3)每一次請求都會帶上cookie傳給服務器,體驗很差,浪費寬帶;

4)用戶能夠操做cookie,使功能受限。

2.session

保存位置:服務端,支持任何類型的存儲內容

session與cookie關係:

session是基於cookie實現的,session必須將sessionID經過cookie發送到客戶端;

第一次建立session,服務端會在http協議中告訴瀏覽器端,須要在cookie裏面記錄一個sessionID,之後每次請求把這個會話ID發送到服務器,據此來識別不一樣客戶端。

應用場景

1)網上商城的購物車;

2)保存用戶登陸信息;

3)將某些數據放入session中,供同一用戶的不一樣頁面使用;

4)防止用戶非法登陸。

session缺點

1)session保存的東西越多,就越佔用服務器內存,對於用戶在線人數較多的網站,會加大服務器的壓力;

2)依賴cookie,若是禁用cookie,則要使用URL重寫;

3)過分使用session變量會致使代碼不可讀並且很差維護。

3.sessionStorage(會話存儲)

保存位置:瀏覽器端,只能存儲字符串類型。

生命週期:

僅在當前會話下有效,是在同源的窗口中始終存在的數據。只要這個瀏覽器沒有關閉,即便刷新頁面或者進入同源另外一個頁面,數據依然存在。瀏覽器窗口關閉後數據被銷燬。

應用場景:敏感帳號一次性登陸。

儲存大小:瀏覽器對sessionStorage的大小限制是5MB。

4.localStorage(本地存儲)

保存位置:瀏覽器端,只能存儲字符串類型。

生命週期:

localStorage的生命週期是永久的,關閉頁面或者瀏覽器以後localStorage中的數據也不會消失。

應用場景:長期登陸、判斷用戶是否已登陸、適合長期保存在本地的數據。

儲存大小:瀏覽器對localStorage的大小限制是5MB。

相關文章
相關標籤/搜索