-
Session:
- 定义:
Session
是一种服务器端存储的数据结构,用于跟踪用户的状态。 - 工作原理:当用户首次访问一个使用 session 的网站时,服务器会为其分配一个唯一的 session ID。此 ID 通常存储在 cookie 中,但也可以通过 URL 传递。
- 存储位置:session 数据存储在服务器上。
- 安全性:通常比 cookies 更安全,因为 session 数据存储在服务器上,而不是客户端。
- 定义:
-
Cookie:
- 定义:
Cookie
是存储在用户计算机上的小段数据,用于存储用户与网站相关的信息。 - 工作原理:当用户访问一个网站时,服务器可以设置一个 cookie,然后每次用户再次访问该网站时,浏览器都会将该 cookie 与请求一起发送到服务器。
- 存储位置:存储在用户的浏览器中。
- 安全性:由于存储在客户端,因此可能容易受到某些攻击,如 XSS(跨站脚本)和 CSRF(跨站请求伪造)。
- 定义:
-
Token:
- 定义:
Token
是一种用于身份验证和授权的字符串,通常包含编码的用户信息和其他元数据。 - 工作原理:当用户登录时,服务器会生成一个 token,并将其发送给客户端。客户端随后在每次请求中都带有这个 token,以证明其身份。
- 存储位置:存储在客户端(通常在 localStorage 或 sessionStorage 中)。
- 安全性:与 cookie 类似,存储在客户端,可能容易受到某些攻击。
- 定义:
-
JWT (JSON Web Token):
- 定义:
JWT
是一种开放标准,定义了一种紧凑且自包含的方式,用于在各方之间安全地传输信息。 - 特点:JWT 通常由三部分组成:头部、载荷和签名。它可以使用数字签名来验证其完整性。
- 使用场景:常用于身份验证和跨域认证,如在单点登录(SSO)系统中。
- 存储位置:与其他 tokens 类似,存储在客户端。
- 定义: