【cookie、session、token的解释与区别?】

一、解释

Cookie

  • Cookie是一个存储在客户端(浏览器)的小型文本文件,用于存储用户信息,如会话标识符、用户首选项等。
  • 按照域名存储,只有创建Cookie的域名下的请求才会携带该Cookie。
  • 大小通常不超过4KB,每个站点最多保存约20个Cookie。
  • 可以通过设置属性使其长期有效,或者设置为会话级别(关闭浏览器即失效)。
  • 前后端都可以通过代码对Cookie进行增删改查操作。

Session

  • Session是客户端和服务器之间建立的一种状态,用于保存用户的状态信息,如登录状态、购物车内容等。
  • 数据存储在服务器端,可以是内存或磁盘。
  • 没有大小限制,但出于性能考虑,不建议在Session中存储过多数据。
  • Session中的信息只能由服务器端存取,客户端不能直接操作。
  • Session ID通常通过Cookie在客户端和服务器之间传递。

Token

  • 在Web开发中,Token通常指的是一个随机生成的字符串,用于验证用户的身份和权限。
  • 与Session类似,但Token是保存在客户端的,可以是浏览器内存或localStorage等。
  • Token的生成和验证通常在服务器端进行,客户端只需在请求时携带Token即可。
  • Token通常用于实现无状态会话,即服务器端不保存用户的会话信息,只通过Token来验证用户身份。

二、区别

存储位置

  • Cookie:存储在客户端浏览器上。
  • Session:存储在服务器端。
  • Token:保存在客户端,可以是浏览器内存或localStorage等。

安全性

  • Cookie:对客户端可见,存在被篡改的风险,不适合存储敏感信息。
  • Session:存储在服务器端,相对更安全,但Session ID通过Cookie传输时也可能被截获。
  • Token:通常包含复杂的验证信息,如签名、时间戳等,安全性较高。

有效期

  • Cookie:可以通过设置属性来控制有效期。
  • Session:依赖于服务器端的设置和客户端的Session ID。
  • Token:通常设置较短的过期时间,并需要定期刷新。

用途

  • Cookie:主要用于跟踪用户行为和存储用户偏好。
  • Session:用于保存用户状态信息,如登录状态、购物车内容等。
  • Token:主要用于身份验证和授权,实现无状态会话。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值