保存位置:瀏覽器端,存儲內容只接受String類型瀏覽器
若是設置過時時間,保存在硬盤中,關閉瀏覽器後cookie數據仍然存在,直到過時事件結束才消失。安全
若是未設置過時時間,保存在內存中,生命週期隨瀏覽器的關係而結束,這種cookie簡稱爲會話cookie。服務器
cookie原理:cookie
1)判斷用戶是否登陸過網站,以便於下次登陸時可以實現自動登陸(或者記住密碼);session
2)保存上次查看的頁;網站
3)瀏覽次數。cdn
cookie缺點:blog
1)存儲小:單個cookie保存的數據不能超過4kb;生命週期
2)安全性低:別人能夠分析存放在本地上的cookie並進行cookie欺騙;事件
3)每一次請求都會帶上cookie傳給服務器,體驗很差,浪費寬帶;
4)用戶能夠操做cookie,使功能受限。
保存位置:服務端,支持任何類型的存儲內容
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變量會致使代碼不可讀並且很差維護。
保存位置:瀏覽器端,只能存儲字符串類型。
生命週期:
僅在當前會話下有效,是在同源的窗口中始終存在的數據。只要這個瀏覽器沒有關閉,即便刷新頁面或者進入同源另外一個頁面,數據依然存在。瀏覽器窗口關閉後數據被銷燬。
應用場景:敏感帳號一次性登陸。
儲存大小:瀏覽器對sessionStorage的大小限制是5MB。
保存位置:瀏覽器端,只能存儲字符串類型。
生命週期:
localStorage的生命週期是永久的,關閉頁面或者瀏覽器以後localStorage中的數據也不會消失。
應用場景:長期登陸、判斷用戶是否已登陸、適合長期保存在本地的數據。
儲存大小:瀏覽器對localStorage的大小限制是5MB。