关于两次访问接口的sessionid不一致问题

在这里插入图片描述在这里插入图片描述

在测试验证邮箱、注册逻辑时,出现验证码错误的问题。验证码是存放在session内的,在排除了逻辑代码的问题后,检查出这两次访问接口的sessionid并不一致,而在swagger测试接口时是一致的。因此我比较了swagger与ajax请求/响应头的区别,发现服务器返回了sessionid,ajax并未携带此sessionid:
在这里插入图片描述
在这里插入图片描述

问题出现在ajax,搜一下ajax如何手动携带cookie就可以了,就很容易解决了。最后我们来回顾一下session的工作流程:

Session是一种在Web应用程序中用于存储和管理用户数据的机制。它主要涉及到以下流程:
1、客户端向服务器发送请求。
2、服务器在接收到客户端请求之后,会为该会话生成一个唯一的sessionid,并将该sessionid存储在一个cookie中,然后将该cookie发送给客户端。
3、客户端在接收到服务器发送的response后,会自动保存该cookie,并在后续的请求中将该cookie包含在请求头中。
4、服务器在接收到客户端发送的后续请求时,会自动从请求头中提取sessionid,并使用该sessionid来查找该客户端的会话。
5、如果服务器找到了该会话,则会将该会话中存储的数据发送回客户端,以便客户端可以使用这些数据来执行操作。
6、如果服务器没有找到该会话,则会创建一个新的会话,并将该会话的sessionid存储在一个cookie中,然后将该cookie发送回客户端。
7、在客户端结束会话(例如关闭浏览器)时,浏览器会自动删除该cookie,从而结束该会话。

总的来说,Session的流程就是服务器生成一个唯一的sessionid,并将其存储在客户端的cookie中,以便服务器能够识别客户端的会话。服务器使用该sessionid来查找该客户端的会话,并使用该会话来存储和管理用户数据。客户端通过在请求头中包含该cookie来与服务器交互,并在会话结束时自动删除该cookie。

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值