cookie、session、localstorage、sessionStorage
1. cookie和session一般都是浏览器用来记录用户身份
cookie数据始终在http请求中携带,大小不超过4k,保存在浏览器端,如果不设置过期时间,那么cookie将会被存储在内从当中,随着浏览器的关闭而关闭,如果cookie设置了过期时间,cookie将会被存在硬盘中, 只有过期时间到了,cookie才会被清除;
session保存在服务器端,客户端不知道其中的信息;反之,cookie保存在客户端,服务器能够知道其中的信息
session中保存的是对象,cookie中保存的是字符串
cookie缺点:
- 不安全,别人可以分析存放在本地的cookie并进行cookie欺骗
- API不友好
2. webStorage:sessionStorage和localStorage
共同点
1、存储大小均为5M左右
2、都有同源策略限制
3、仅在客户端中保存,不参与和服务器的通信
不同点
生命周期
sessionStorage仅在当前浏览器窗口关闭前有效,不可能持久保持
localStorage始终有效直至手动删除
作用域
localStorage: 在同一个浏览器内,同源文档之间共享 localStorage 数据,可以互相读取、覆盖。
sessionStorage: 与 localStorage 一样需要同一浏览器同源文档这一条件。不仅如此,sessionStorage 的作用域还被限定在了窗口中,也就是说,只有同一浏览器、同一窗口的同源文档才能共享数据。
IndexDB
存储数据多,可离线存储
cookie session实现登录
浏览器第一次请求服务端的时候,服务端会生成这个用户的cookie和sessionid并返回给浏览器,之后浏览器再次访问服务端时会带着cookie,cookie里包含sessionid,服务端拿到这个信息一看已经登录过了,免登录