参考文献:
- Session、Cookie、Token 【浅谈三者之间的那点事】-腾讯云开发者社区-腾讯云 (tencent.com)
- 你会做Web上的用户登录功能吗? | 酷 壳 - CoolShell
- 十分钟搞懂HTTP和HTTPS协议? (zhihu.com)
- (142条消息) 通俗易懂。HTTP请求行、请求头、请求体、响应行、响应头、响应体详解_请求头请求体响应头响应体_来老铁干了这碗代码的博客-CSDN博客
什么是JWT?
JWT全文为json web token。token 就是加密字符串。
什么是Cookie?
cookie基于HTTP协议,用于辨别用户身份。如登录某个账户时有“保存密码”的弹窗,登录成功以后回退到登录前的网页再进入主页面时无需重复登录(自动登录)
满足:【服务器向浏览器发送一个token,每次浏览器请求同域名的服务器时都会自动带上这个token】 这个条件的就是cookie。服务器下发token时带上set-cookie请求头,浏览器发请求时带上cookie请求头
什么是Session?
session(一般)基于cookie,用于认证用户身份。
在server给多个client发送uid(cookie),如果此时有个黑客将uid1改为了uid2返回给server,就造成了用户身份伪造,导致信息泄露,因此需要用session加密
session将cookie加密后会存在服务器内存中,每次向浏览器发送一个很长的随机数,这样保证了数据的安全性,但会导致占用服务器资源,这就引出了token
什么是Token?
token将cookie加密后,直接由server发送到client,client解密后获取到用户身份。Session与Token的区别在于,Session是将数据存在Token是将数据直接存在密文里面