okhttp返回jsessionid后,服务器拿到jsessionid,服务器是如何返回有效用户的数据?

lilintong 2019-07-12 01:09:19
最近学着做项目,网络请求用okhttp时带上jsessionid向服务器提交数据时,我不知道服务器是如何判断用户支前登录过,并返回有效用户的数据?我停留在这个地方快半年了,希望懂服务器的高手指导,并以微信转账方式回报为感谢。
...全文
383 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lilintong 2019-07-12
  • 打赏
  • 举报
回复
你的意思是将JsessionID发送给客户端后服务器自己也保存一份,下次客户端登录时先查询这个JsessionID,有就登录成功,没有就失败,这样理解对吗?
lilintong 2019-07-12
  • 打赏
  • 举报
回复
Session与Cookie会话过程我很了解,就是客户端登录成功后,客户端保存JsessionID在本地,下次登录时网络请求头会带上这个JsessionID到服务器端。服务端是如何判断这个JsessionID登录过?
白给少年404 2019-07-12
  • 打赏
  • 举报
回复
Session实现是有用到Cookie(在Cookie不被禁用的情况下)。 在用户第一次登陆服务器的时候,验证通过后,服务器会把用户信息放到Session当中(也就是放到服务器的内存当中)。 而识别不同的Session是根据JsessionId去区分的。 服务器Response返回给浏览器的时候,会把JessionId放到Cookie当中返回。 当浏览器下一次请求的时候,会带上JessionId, 服务端去根据JessionId去拿到之前的信息。 Cookie可以理解成一个域,服务器返回给浏览器Cookie数组后。 以后浏览器再次访问该域名时,会带上响应的Cookie。 与Session不同的是,Cookie只存放在客户端,服务端那边是不存Cookie的信息的。 一个典型的应用是,购物网站在不登录的状态下,加入购物车后,关闭浏览器,再次打开发现购物车里面的东西还在,就是因为服务端把商品信息放到了Cookie中,我们下一次打开网站时,又加载了一遍。 两个会话机制的最主要区别就是,Cookie是存放浏览器端,Session是保存在服务器端(因此会消耗服务器内存,用户多的网站也不会把用户信息放到Session当中,解决方案是 使用令牌机制,这个有兴趣可以查查)。
maradona1984 2019-07-12
  • 打赏
  • 举报
回复
登录成功后调用request.getSession(),服务端创建session,并在cookie里响应jsessionid,jsessionid与session一一映射,一般用户信息会存储在session中 之后所有请求带上jsessionid自然会映射到你登录创建的session,即可拿到用户信息
usecf 2019-07-12
  • 打赏
  • 举报
回复
个人理解: session就类似web前端的cookie 将登陆的信息保存在服务器,下次判断session中的数据是否为null 不为null的话,就从session获取用户信息,进行登陆,cookie的话,每个浏览器返回的值都不一样。 session存储容量不受限制,cookie最大只有4k session存在服务器端 安全性比较好

50,503

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧