Cookie、SessionStorage、 LocalStorage都是浏览器的本地存储
它们的共同点:都是存储在浏览器本地的
- cookie是由服务器端写入的,而SessionStorage、LocalStorage都是由前端写入的,cookie的生命周期是由服务器端在写入的时候就设置好的,LocalStorage是写入就一直存在,除非手动清除,SessionStorage是页面关闭的时候就会自动清除
- cookie的存储空间比较小大概4KB,SessionStorage、 LocalStorage存储空间比较大,大概5M
- cookie一般用于存储登录验证信息SessionID或者token,LocalStorage常用于存储不易变动的数据,减轻服务器的压力,SessionStorage可以用来检测用户是否是刷新进入页面,如音乐播放器恢复播放进度条的功能。
- Cookie、SessionStorage、 LocalStorage数据共享都遵循同源原则,SessionStorage还限制必须是同一个页面
- 前端给后端发送请求的时候会自动携带Cookie中的数据,但是SessionStorage、 LocalStorage不会
cookie缺点:
1.`Cookie`数量和长度的限制。每个domain最多只能有20条cookie,
每个cookie长度不能超过4KB,否则会被截掉。
2.安全性问题。如果cookie被人拦截了,那人就可以取得所有的session信息。
即使加密也与事无补,因为拦截者并不需要知道cookie的意义,
3.有些状态不可能保存在客户端。
例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。
如果我们把这个计数器保存在客户端,那么它起不到任何作用。
请求一个新的页面的时候Cookie都会被发送过去,这样无形中浪费了带宽,
另外cookie还需要指定作用域,不可以跨域调用
但是Cookie也是不可以或缺的:
Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在。