- Session与Cookie
Session是诞生并保存在服务器那边,由服务器主导一切。而Cookie则是一种数据载体,把Session放入Cookie中送到客户端那边,Cookie跟随HTTP的每个请求发送出去。
- Token与Cookie
Token是诞生在服务器,但保存在浏览器这边的,由客户端主导一切,可以放到Cookie或者Storage里面,持有Token就像持有“令牌”一样可以允许访问服务器
总之,token生成于服务端,存储在客户端,服务端不用存储,用户后面每次登录都携带首次都登录生成的token字符串用于验证,能做到这点,关键就是token使用的某种算法根据用户签名和其它一些信息生成的令牌信息是一致的,可以验证通过,对于用户量庞大的系统,或者分布式,避免了大量session对象的存储带来的内存消耗,和各服务器之间session的复制或者专门用于存储session的服务器宕机带来的问题。
Session 是一种能力:是服务器见鬼说鬼话,见人说人话的能力。
Token 是一个字符串凭证:和你的各种证件一样功能的凭证,JWT 恰好是其中一种格式。
Cookie 是浏览器中的一个存储技术:历史很久了,不用这个也可以。
以上连起来就是,你从自己的小钱包(Cookie) 里掏出了身份证(Token),递给了窗口(服务器)里面,从而达成了一种Session 能力。