cookie和sesson
- 安全性:sesson比cookie安全,sesson时存储在服务器端的,cookie时存储在客户端
- 储存的类型不同:cookie只支持字符串数据。想要设置其他类型的数据需要转成字符串sesson可以储存任意类型
- 有效期不同:cookie可以设置长时间保存比如长使用的默认登陆功能,sesson一般失效事件较短,客户端关闭或者sesoon超市都会失效
- 储存大小不同:单个cookie储存的数据不能超过4k,sesson可储存的数据远高于cookie,但是访问量过多,会占用过多的服务器资源
cookie, sessionstorage,localstorage
分类 | 生命周期 | 储存量 | 储存位置 |
---|---|---|---|
cookie | 默认保存在内存中,随浏览器关闭失效,如设置过期时间,在时间过期后失效 | 4kb | 保存在客户端每次请求都会带上 |
local storage | 理论上永久有效,除非手动清除 | 4.98mb | 存在客户端不与服务器交互节省网络流量 |
sessionStorage | 仅在当前页面有效,关闭页面后浏览器失效 | 4.98mb,部分浏览器没限制 | 存在客户端不与服务器交互节省网络流量 |
token相关:
token的意思是“令牌”,是用户身份的验证方式,最简单的token组成:uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,由token的前几位+盐以哈希算法压缩成一定长的十六进制字符串,可以防止恶意第三方拼接token请求服务器)。还可以把不变的参数也放进token,避免多次查库
- 客户端使用用户名跟密码请求登陆
- 服务端接受请求,去验证用户名和密码
- 验证成功以后,服务端会签发一个token并且吧这个token发送给客户端
- 客户端收到token以后,会把它储存起来,比如放到cookie里面或是localstorage里
- 客户端每次访问服务端请求资源时需要带着服务端签发的token
- 服务端收到请求,然后去验证客户端请求里面带着的token,如果验证成功就想客户端返回请求的数据
- 每一次请求都要带着token需要吧token放到http 的header里
- 基于token的认证是一种服务端无状态的认证方式,服务端不用存储token数据,用解析token的时间换区session的存储空间,从而减轻服务器的压力,减少频繁的查询数据库 token完全由应用管理,素以他可以避开同源策略