Session和token是网络连接中常用到的两种机制,一般用来保持连接的客户端信息,但两种实现存在差异。
session
session是由Web服务器维护的一种连接信息,可以用来存储当前连接的客户端相关信息。session默认超时时间为30分钟,可进行配置。使用postman进行接口测试时,每次连接使用一个新的session。如果两个连接想使用同一个session,可以在将第一个请求返回的JSession(见图一),放在第二个请求的header中添加的cookie里(见图二)。
例如,当用户登录成功时,在session里保存用户信息
httpSession.setAttribute("curUser", dbUser);
在连接中获取用户信息
BUserInfo curUser = (BUserInfo) httpSession.getAttribute("curUser");
token
token是一种令牌口令,一般由header、body、signature三部分组成。当客户端登录到服务器时,由服务器生成,返回给客户端,并在服务器的缓存或数据库保存签名。token的生成会用到用户信息,并使用一个密钥按某种算法加密,并可以设置过期时间。当客户端再次连接服务器时,带上token,服务器端通过验证并解析出用户信息即可,省去了每次需要传输用户名