Cookie、Session、Token

Cookie、Session、Token区别:

  • Cookie是一种存储在浏览器的数据,Cookie的核心特点是:每个请求都会自动发送Cookie到相应服务器那里。Cookie是由客户端向服务器发送请求,服务器产生Cookie返回给客户端,存放于浏览器的缓存中。 打开浏览器可以看到保存了哪些Cookie,所以用户名和密码直接放在Cookie里不安全。解决此安全问题的就是Session了

  • Session会话):服务器会根据浏览器发来的用户名密码创建 SessionID(无规律字符串)和会话结束时间(Max-age)并存储在服务器端 (用户离开网站后session会被销毁),然后将这两样东西放到Cookie中还给浏览器。后续浏览器的每次请求都带着这个Cookie去找服务器,服务器根据SessionID识别用户。负载均衡会导致另一台服务器session丢失。另外SessionID可以伪造,为此服务器为了安全要建立白名单。要想不用白名单,就用JWT技术(JSON Web Token)。

  • JWT:用户第一次登录网页后,服务器生成一个JWT,服务器不需要保存他,只需要保存JWT签名的密文。接着服务器将JWT发给浏览器,可以让浏览器以Cookie或者Storage的形式进行存储。假设存储在Cookie中,那么后续浏览器的每次请求都带着这个Cookie(也就是JWT)去找服务器,和Session很类似。这里的Token存储在用户那。

总结:Session诞生并保存在服务器中,由服务器主导一切;Cookie是一种数据载体(货车),把Session放入Cookie中送到客户端,Cookie跟随HTTP的每个请求发送出去,Cookie是一种存储在浏览器的数据;Token诞生在服务器但保存在浏览器,由客户端主导一切。

posted @   大于昨天  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示