🍔token cookie session
-
Cookie
关于cookie的使用 ==> 首先浏览器向服务器发送HTTP请求 然后服务器会给浏览器发哦是那个一个Set-Cookie (key, value)
说白了其实Cookie就是一种存储在服务器的数据罢了
而且由于打开浏览器可以直接看到Cookie 导致这种存放数据的方式很不安全
-
Session
- 关于session其实就是服务器一种保存数据的方式
- 当用户将数据发送到服务器的时候 服务器会根据一系列的加密算法将数据变成一个
SessionID这个SessionID具有唯一性 只要有一点点改变 服务器就无法继续识别出这个SessionID - 当用户给服务器发送请求的时候 服务器返回的不仅仅是ID 还有一个会话结束时间 由于数据保存是有一定时效的 所以当时间到了 服务器会将之前的
SessionID做销毁处理 也就是Cookie失效了 即下次用户登陆的时候就需要重新输入密码了
但是由于
SessionID这种储存方式可能导致服务器中的数据量太大 不同的服务器再分享的时候也会面临负载过大的问题 所以就出现了一种新的技术叫做JWT(JSON Web Token) -
Token
(header. payload . signature)
用户第一次登录的时候 服务器就会生成一个
JWT服务器自己不需要保存这个JWT只需要保存JWT签名的密文就好了 然后将JWT发送给浏览器 使浏览器以Cookie或者Storage的形式进行存储 当用户下次需要登陆的时候 只要把token发送给服务器就可以了 和Session类似 只是token是存在用户这边 -
总结
- token生成于服务端 存储在客户端 服务端不需要存储 用户后面每次登陆的时候都携带首次登陆生成的token字符串用于验证 避免了大量session对象存储带来的内存消耗 和个服务器之间session的赋值或者专门用来存储session的服务器带来的问题