cookie的優點:具有極高的擴展性和可用性
- 通過良好的編程,控制保存在cookie中的session對象的大小。
- 通過加密和安全傳輸技術,減少cookie被破解的可能性。
- 只有在cookie中存放不敏感的數據,即使被盜取也不會有很大的損失。
- 控制cookie的生命期,使之不會永遠有效。這樣的話偷盜者很可能拿到的就是一個過期的cookie。
cookie的缺點:
- cookie的長度和數量的限制。每個domain最多只能有20條cookie,每個cookie長度不能超過4KB。否則會被截掉。
- 安全性問題。如果cookie被人攔掉了,那個人就可以獲取到所有session信息。加密的話也不起什么作用。
- 有些狀態不可能保存在客戶端。例如,為了防止重復提交表單,我們需要在服務端保存一個計數器。若吧計數器保存在客戶端,則起不到什么作用。
在html5中web storage包括兩種存儲方式:sessionstorage和localstorage
sessionstorage用於本地存儲一個會話(session)中的數據,這個數據只有在同一個會話中的頁面才能訪問並且當會話結束后數據也隨之銷毀。因此sessionstorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。
而localstorage用於持久化的本地存儲,除非主動刪除數據,否則數據是永遠也不過期的。
web storage的概念和cookie相似,區別是它是為了更大的容量存儲設計的。cookie大小受限,並且每次都請求一個新的頁面的時候后cookie都會被發送過去,另外cookie還需要指定作用域,不可以跨域調用。
cookie的作用是與服務器進行交互,作為HTTP規范的一部分存在,而web storage僅僅是為了在本地存儲數據而生。
localstorage和sessionstrage都具有相同的操作方法,例如setItem,getItem和removeItem等。