Cookie、Session、Token究竟区别在哪
http无状态,所以我们无法知道每次登录的是谁,要实现让网页知道每次登录的是谁,就需要cookie
cookie和session
但这里其实我们打开浏览器就可以看见保存了哪些cookie,如果浏览器被黑,用户账号和信息就会泄露,所以把用户名和密码放在cookie里面是不安全的
session
意思是会话,不同的网站对于每个用户的会话都设定了时间和唯一的id(session ID)这里的时间就是结束会话的时间,而这些信息就保存在数据库中
Session id即使被黑客拿到也没有多大的作用
为什么需要cookie
http协议是无状态的
使用cookie可以保存上次的状态
cookie和session的区别
cookie存在客户端
session存在服务端
)
token
JWT:JSON Web Token
jwt组成:
token和cookie也可以进行加密,为啥一定要用JWT呢?
Token 和 Cookie 都可以加密,并且它们都可以用于存储会话状态信息。但是,在一些特定情况下,JWT 比 Token 和 Cookie 更加适合。
主要原因如下:
-
JWT 可以被解码:JWT 是一种可以在客户端和服务端之间直接传递的格式,因为它可以被解码,所以不需要再次请求服务器,以获取关于用户身份的信息。
-
JWT 可以跨域:JWT 是一种跨域解决方案,因为它可以在不同的域名间传递,并且不需要使用 Cookie。
-
JWT 不会存储在客户端:JWT 不会存储在客户端,而是存储在 HTTP 请求头中,这可以防止数据被篡改。
因此,如果您需要跨域解决方案,或者需要在客户端和服务端之间直接传递数据,那么 JWT 可能是一个更好的选择。但是,如果不需要这些功能,则 Token 和 Cookie 也可以适当的解决您的需求。
总结
session诞生并保存在服务器
cookie则是一种数据载体,把session放在cookie中送到客户端那边,cookie跟随http的每个请求发送出去
token诞生在服务器,但保存在浏览器,持有token就像持有令牌,可以访问不同服务器