目录
cookie,sessionstorage,lacalstorage的区别
cookie,sessionstorage,lacalstorage的区别
共同点:Cookie、SessionStorage、 LocalStorage 都是浏览器本地存储的方式,数据存储在浏览器本地
区别:5个
- 写入方式:cookie是由服务器端写入的,而SessionStorage、 LocalStorage都是由前端写入的
- 生命周期:cookie的生命周期是由服务器端在写入的时候就设置好的,LocalStorage是写入就一直存在,除非手动清除,SessionStorage是在当前页面会话有效,页面关闭的时候就会自动清除
- 存储数据大小:cookie最多存储4kb数据,sessionstorage和localstorage能存储5M或更大数据
- 与服务端交互:客户端每次请求都会自动携带cookie发送给服务器端,但是SessionStorage、 LocalStorage不会
- 共享范围:Cookie、SessionStorage、 LocalStorage数据共享都遵循同源原则,SessionStorage还限制必须是同一个页面。
加分项:
由于它们的以上区别,所以它们的应用场景也不同,Cookie一般用于存储登录验证信息SessionID或者token,LocalStorage常用于存储不易变动的数据,减轻服务器的压力,SessionStorage可以用来检测用户是否是刷新进入页面,如音乐播放器恢复播放进度条的功能。
cookie和session区别
区别:4个
- 数据存放位置及安全性:Session 比 Cookie 安全,Session 是存储在服务器端的,Cookie 是存储在客户端的
- 存取值的类型: cookie只支持存取字符串数据,想要设置其他类型的数据,需要将其转换成字符串,Session 可以存任意数据类型。
- 生命周期: Cookie 可设置为长时间保持,比如我们经常使用的默认登录功能,Session 一般失效时间较短,客户端关闭(默认情况下)或者 Session 超时都会失效。
- 存储数据大小: 单个 Cookie 保存的数据不能超过 4K,Session 可存储数据远高于 Cookie,但是当访问量过多,会占用过多的服务器资源,影响服务器性能
个人建议: 将用户登录信息,如用户名密码用session存储,其他需要保留的登录验证信息如sessionID token用cookie存储
token和session区别
区别:
- 服务端无状态:session是用于记录服务器和客户端会话状态的机制,在服务端保存状态,可以记录会话信息;token令牌是访问资源接口时所需的资源凭证,token使服务端无状态化,不存储会话信息
- 安全性:token作为身份认证比session更加安全,因为每个请求都有签名,能有效防止监听和重放攻击
- 跨域:session只提供一种简单的认证,sessionID只能存在站方,不能共享给其他网站或第三方app,而token可以提供认证和授权,可以供第三方调用API接口或共享用户数据
token 和 JWT 的区别
相同点:
都是访问资源的令牌
都可以记录用户的信息
都是使服务端无状态化
都是只有验证成功后,客户端才能访问服务端上受保护的资源
不同点:
Token: 服务端验证客户端发送过来的 Token 时,还需要查询数据库获取用户信息,然后验证 Token 是否有效。JWT: 将 Token 和 Payload 加密后存储于客户端,服务端只需要使用密钥解密进行校验(校验也是 JWT 自己实现的)即可,不需要查询或者减少查询数据库,因为 JWT 自包含了用户信息和加密的数据。