相同点:都存储在客户端
不同点:
1、存储大小
cookie 存储数据不能超过 4K,只适合保存和小的数据。
localStorage、sessionStorage 虽然也有大小限制,但是要大得多,可以达到 5M 或者更大。
2、时间有效性
localStorage:持久有效,与浏览器时候关闭无关,除非手动删除;
sessionStorage:数据在当前的浏览器窗口关闭后自动删除;
//存储数据
sessionStorage.aco_search_form = JSON.stringify(searchForm.value)
跳页回来读取数据
searchForm.value = JSON.parse(sessionStorage.aco_search_form)
//清除缓存
sessionStorage.removeItem('aco_search_form')
cookie:可以设置存储时间,时间过期之前一直失效,即使浏览器或窗口关闭。
3、与服务端的交互方式
cookie 的数据会自动的传递到服务器,服务器端也可以写 cookie 到客户端;
localStorage、sessionStorage 不会自动把数据发给服务器,只存在本地。
4、作用域不同,sessionStorage 不在不同的浏览器窗口中共享,即使是同一个页面;localstorage 在所有同源窗口中都是共享的;cookie 也是在所有同源窗口中都是共享的