session,cookie,token详解
1.session
1.1 session的作用是什么
session的作用是用于保存每个用户的专用信息;当用户访问时,服务器都会为每个用户分配唯一的Session ID,而且当访问其他程序时可以从用户的session中取出该用户的数据为用户服务。
session的作用是用于保存每个用户的专用信息,当用户访问时,服务器都会为每个用户分配唯一的Session ID,而且当访问其他程序时可以从用户的session中取出该用户的数据为用户服务
1.2什么是session
在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据为用户服务。
1.3、session和cookie
1. 定义
Session在计算机中,尤其是网络应用中,被称为“会话控制”。
Session对象可以存储用户在程序中的一些数据,用户在系统中不同的web页面之间进行跳转时,存储在Session中的数据不会丢失。
当用户请求来自web页面时,如果该用户还没有会话,web服务器就会创建一个新的Session对象。当会话过期或者被放弃后,服务器将终止该会话。
2. 和Cookie比较
Session和Cookie都可以保存用户数据,但是Session是保存在服务端,Cookie是保存在客户的浏览器中。
电脑桌面端应用与APP应用不保存Cookie。
Session的实现需要依赖于Cookie,当服务端创建Session后,会返回一个JSESSIONID存到Cookie中,下次再请求时,请求头中携带的Cookie会将JSESSIONID一并带回到服务端,这样服务端就可以找到对应的Session对象。
1.4、图解
1.5、5. 总结
Session是一项会话存储技术,它的实现需要Cookie的配合。服务端根据请求中Cookie携带的JSESSIONID参数寻找对应的Session对象。
第一次请求没有携带JSESSIONID或者JSESSIONID对应的Session对象已经失效或者不存在,则服务端创建新的Session,并将JSESSIONID添加到响应头中,浏览器端接收到响应后,设置Cookie中的JSESSIONID参数。
2.token
2.1、token是什么?
Token是用户进行一些权限操作时的许可凭证。token本质是字符串,里面包含了用户信息,过期时间,加密方式等。token是在前端进行登录之后,由服务器分发给前端,然后前端进行权限操作时,再将token发送给服务器,由服务器来验证。token是有过期时间的,一但token过期,用户就要重新登陆让服务器生成新的token
2.2、token的验证流程如下
客户端使用用户名和密码请求登录
服务端收到请求,验证用户名和密码
验证成功后,服务端会签发一个token,再把这个token返回给客户端
客户端收到token后可以把它存储起来,比如放到cookie中
客户端每次向服务端请求资源时需要携带服务端签发的token,可以在cookie或者header中携带
服务端收到请求,然后去验证客户端请求里面带着的token,如果验证成功,就向客户端返回请求数据