Session、Cookie和Token的主要区别

什么是cookie

cookie是由Web服务器保存在用户浏览器上的小文件(key-value格式),包含用户相关的信息。客户端向服务器发起请求,如果服务器需要记录该用户状态,就使用response 向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie, 以此来辨认用户身份。

Cookie 可以设置过期时间,过期后浏览器会自动删除。
可以通过 HttpOnly 和 Secure 标志来提高 Cookie 的安全性。
除了会话管理外,Cookie 还可以用于个性化设置和跟踪用户行为。

什么是session

session是依赖Cookie实现的。session是服务器端对象
session 是浏览器和服务器会话过程中,服务器分配的一块储存空间。服务器默 认为浏览器在cookie中设置 sessionid,浏览器在向服务器请求过程中传输,cookie 包含 sessionid ,服务器根据 sessionid 获取出会话中存储的信息,然后确定会话的身份信息。

Session 通常用于存储敏感信息,如用户的登录状态和权限信息。
Session 有默认的有效期,过期后会自动销毁。
可以通过配置服务器设置 Session 的持久化存储,以防止服务器重启导致 Session 丢失。

cookie与session区别

存储位置与安全性:cookie数据存放在客户端上,安全性较差,session数据放在服务器上,安全性相对更高;
存储空间:单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点多保存20个cookie,session无此限制
占用服务器资源:session一定时间内保存在服务器上,当访问增多,占用服务器性能,考虑到服务器性能方面,应当使用cookie。

什么是Token

Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。
Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
Token 是在服务端产生的。如果前端使用用户名/密码向服务端请求认证,服务端认证成功,那么在服务端会返回 Token 给前端。前端可以在每次请求的时候带上 Token 证明自己的合法地位

Token 通常包含有期时间,过期后需要重新获取。
Token 可以加密和签名以防止篡改和伪造。
常见的 Token 机制包括 JWT (JSON Web Token)。

session与token区别

  • session机制存在服务器压力增大,CSRF跨站伪造请求攻击,扩展性不强等问题;
  • session存储在服务器端,token存储在客户端
  • token提供认证和授权功能,作为身份认证,token安全性比session好;
  • session这种会话存储方式方式只适用于客户端代码和服务端代码运行在同一台服务器上,token适用于项目级的前后端分离(前后端代码运行在不同的服务器下)
  • 存储位置:Session 数据存储在服务器端。Token 存储在客户端(通常是浏览器的本地存储或会话存储)。
  • 服务器压力:Session 机制会随着用户数量的增加而增加服务器的存储和管理负担。Token 减轻了服务器的压力,因为服务器不需要为每个用户维护状态信息,只需验证 Token 的合法性。
  • 安全性:Session 容易受到 CSRF (跨站请求伪造) 攻击,需要额外的防护措施。Token 使用签名和加密机制,安全性较高,但需要防范 XSS (跨站脚本攻击) 攻击。
  • 适用场景:Session 适用于客户端和服务器运行在同一域名下的传统 Web 应用。Token 适用于前后端分离的现代 Web 应用,尤其是 SPA (单页应用) 和移动应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值