session、token、cookie都是用于实现用户的鉴权和认证的技术,但是它们有以下几个区别:
- cookie是服务器发送给客户端的一小段数据,存储在客户端,每次请求同一网站时,浏览器会自动携带cookie。cookie可以用来保存用户的偏好、状态等信息,也可以用来配合session实现用户的登录状态。
- session是服务器为每个用户创建的一个临时的会话空间,存储在服务器端,用来保存用户的相关信息。session通常依赖于cookie来传递一个唯一的标识符(session id),以便服务器识别不同的用户。session比cookie更安全,但也占用更多的服务器资源。
- token是服务器根据用户提供的凭证(如用户名和密码)生成并返回给客户端的一个字符串,包含了用户的身份和权限信息。token不需要存储在服务器端,而是由客户端每次请求时主动携带并发送给服务器。token可以抵抗跨站请求伪造(CSRF)攻击,也可以支持多平台和无状态的应用。