session和token

session 是什么?

session:服务端技术,意为会话控制;
和 cookie 不同,session 是保存在服务器上的,而且并不会随着 http 传递;因为 cookie 保存在客户端,
还是很不安全的,服务器为了杜绝这种事情,在服务器上也搞了一个存储用户信息的东西,这就是 session。
一般用于用户的登录状态,用户 id 等敏感信息的保存;

session 怎么使用?

以登录为例,当我们登录后,服务端会在 cookie 中设置当前用户的登录状态为已经登录,
同时在服务器上生成一份 session 文件,session 中存储用户 id,登录状态的有效期限等;这个 session 文件有
一个 id,生成 session 文件后,服务器还会把 session-id 写进 cookie。然后返回给客户端,此时用户的客户端
收到的 cookie 中包含登录状态和 session-id;等下一次再去请求时,http 协议会自动带着所有的 cookie
去请求;等服务器收到请求后,从 cookie 中把用户信息拿出来,然后再根据 session-id 把 session 读取出来,
再从 session 中查询登录状态,如果登录状态有效,就继续正常的响应,否则就返回登录失效的状态,要求用户登录;

session 和 cookie 的区别?
session 存在服务器上,是服务器的技术;
cookie 存在客户端,是 http 协议的一部分;

token 原理?

一般在用户登录时,客户端把用户的用户名和密码传递给服务器,服务端进行校验,如果没有问题,就会生成一个
token;token 是一个字符串,这个字符串一般是加密过的,一般包含了用户 id,登录的时间戳,以及 sign
(签名,生成 token 的前几位进行加密的结果,可以防止 token 被篡改,一旦篡改了后面这一段和前面的对不上了)
;生成 token 后,服务器把 token 返回给前端,然后前端下次请求的时候需要带上这个 token,然后服务端在接收
到请求后会首先校验这个 token 是否有效,如果有效继续受理请求,如果无效则直接拒绝;

使用 token 的方式有哪些?

1.服务端也可以直接把 token 写进 cookie 中,下次客户端发起请求时会自动带上;
2.服务端也可以作为数据返给前端,但是前端此时需要手动的保存这个 token,可以保存在 localStorage 中,下次发请求时从 ls 中取出作为参数传给服务器即可
3.服务端返回 token 后,客户端可以把这个 token 写进请求头中,然后服务端每次从请求头中获取;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值