参考:https://segmentfault.com/a/1190000015881055
一、简述sessionID的生成方式与token的生成方式
1.sessionID的生成方式
浏览器第一次访问服务器时,服务器创建一个session,同时生成一个唯一的会话key,即sessionID。接着sessionID及session分别作为key和value保存到缓存中,也可以保存到数据库中,然后服务器把sessionID以cookie的形式发送给浏览器,浏览器下次访问服务器时直接携带上cookie中的sessionID,服务器再根据sessionID找到对应的session进行匹配
这里我们注意到两点:1.sessionID会自动由浏览器带上 2.session是需要存储空间的
2.token的生成方式
浏览器第一次访问服务器时,服务器根据传过来的唯一标识userId,通过一些算法,加一个密钥,生成一个token,接着通过base64编码将token返回给客户端。客户端将token保存起来,下次请求时需要带着token,服务器收到请求后,用相同的算法和密钥去验证token
这里我们注意到两点:1.token需要代码才能带上 2.token可以不需要存储空间(JWT)(当然也有存入缓存的处理,特别是要进行revoke操作时),通过算法和密钥验证
3.区别
以上我们提出来的注意点就可以看出两点区别了:
1.浏览器方面,是否直接带上 2.服务器方面,是否需要存储空间。
网友评论