会话 令牌

在Web开发中,"session" 和 "token" 都是用来跟踪用户在网站上的活动状态的技术,但它们的工作原理和使用场景有所不同。我们可以用日常生活中的例子来形象地理解它们。### Session(会话)想象一下,你走进一家会员制的商店购物。当你第一次进入这家店时,店员会给你一张会员卡,这张卡上记录了你的身份信息。只要你拿着这张卡,店员就能识别你是谁,知道你在这个店里有哪些权限,比如是否可以享受会员折扣,以及你挑选的商品信息等。当你离开这家店时,店员会暂时保留你的信息,直到你下次再来,然后再发给你一张新的会员卡。在Web开发中,当一个用户首次访问网站时,服务器会给这个用户创建一个唯一的session(会话),并生成一个session ID,这个ID就像是会员卡,会被存储在用户的浏览器上(通常是在cookie中)。之后,用户在网站上的所有操作都会被服务器关联到这个session ID上,这样服务器就能记住用户的状态,比如登录状态、购物车中的商品等。当用户关闭浏览器或长时间不活动后,这个session就会过期,就像你离开了那家商店,会员卡被收回一样。### Token(令牌)现在,让我们换一个场景。假设你参加了一场音乐会,入场时,工作人员给了你一个手环,这个手环上有独一无二的二维码。在整个音乐会期间,你不需要出示身份证或门票,只需要扫描这个手环上的二维码,就能证明你的身份,享受音乐会提供的服务。这个二维码就是你的token,它包含了验证你身份所需的所有信息。在Web开发中,token通常指的是JWT(JSON Web Token)。当你登录一个网站后,服务器会生成一个包含你身份信息的token,并将其发送回你的浏览器。之后,每次你向服务器发起请求时,都会携带这个token,就像展示你的手环一样。服务器通过解码token来验证你的身份,而无需再次查询数据库。这种方式的好处是无状态的,即服务器不需要存储关于你的任何会话信息,所有的信息都在token中,这使得系统更加轻量级,也更易于扩展。总结一下,session和token的主要区别在于:- Session依赖于服务器端存储用户状态,而token则是客户端持有全部验证信息。- Session可能受制于cookie大小和浏览器的限制,而token可以绕过这些问题,适用于跨域和移动设备。- Session在服务器端有存储成本,而token则减轻了服务器的负担,提高了系统的可伸缩性。两者都有各自的适用场景,选择哪种取决于具体的需求和系统的架构。

 

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值