快捷搜索: 王者荣耀 脱发

客户端Session与服务端Session别听混了

服务端的session(身份验证)和客户端的session(存储)你是不是听混了?

前端存储三种方式

名称 存储 大小 消失时间 新建窗口 cookie 不能超过4K 可以设置过期时间(http请求会携带) 同源共享(可以设置子域共享) sessionStorage 最大5M 页面会话在浏览器打开期间一直保持,并且重新加载或恢复页面仍会保持原来的页面会话,关闭对应浏览器标签或窗口,会清除对应的 sessionStorage 打开多个相同的 URL 的 Tabs 页面,会创建各自的 sessionStorage(同源窗口不能共享) localStorage 最大5M 长期有效(以文件的形式存储在硬盘) 同源共享

后端身份验证两种方式

前言:HTTP请求是无状态的,也就是不知道这一次的请求和上一次请求是否有关系,比如我们登录一个系统的时候,验证用户名密码之后,打开系统各个页面的时候就不需要再进行登录操作了,直到我们主动退出登录或超时退出登录;这里为了避免访问每个都登录一下,就要用到session和token。

所以总听到后端说的session到底是啥?

其实后端说的session就是上面所说的用与区分用户信息与登录态的一串值,由后台返回写入到客户端的cookie里,然后每次HTTP请求就带着这个所谓的session到服务端用于服务端进行相关验证。

所以:服务端所说的seesion并不是我们客户端的sessionStorage!

服务端身份验证的两种方式对比:

名称 工作原理 优点 缺点 token 当客户端第一次访问服务端,服务端会根据传过来的账号,查询对应的用户信息(userid)再运用一些加密算法生成一个token。当客户端下次请求时,需要带上token(手动添加到请求头里)服务器收到请求后,会验证这个token。 支持跨域访问、适用接口跨平台、不存在CSRF攻击 每次都要解密token很浪费算力资源、Jwt是无状态的,如果别人获取到了,别人也能用
经验分享 程序员 微信小程序 职场和发展