相同点:token和cookie都是在用户首次登录的时候,服务器产生的,都是为无状态的http提供的持久化机制
不同点: cookie是由服务器产生的,在此之前,服务器会存一个session,当客户端访问的时候,cookie里面携带的sessionID就进行判断,判断服务器中是否存在sessionID,从而获取相对应的用户的信息,形象点来说,就比如你去一个景点,然后需要查看身份,对于cookie来说就是对你的身份证给予一个编号,然后管理者通过你给的编号去查看你的身份,对于token来说就是你直接把身份证给管理者,并不用通过编号去查找后才得知
token存放在哪里都可以,localstorage或者cookie都行
token是不需要存储在服务器的,它只需要知道你是谁就行,里面也不像cookie一样携带很多信息,这样会使减少了开销,客户端访问的时候,向后端返回请求,token就存在请求头中,后端通过请求头去解析token,从而得到用户的相关信息。
token可以避免同源策略,可以避免CSRF跨站伪造攻击
对比token和cookie,token更适合移动端,可扩展性强,而且它可以用在app上
在用户logout的时候,cookie和session就会被注销,但是token不会被注销,注销的只是它在浏览器上记录而已。