http请求的session管理
来源:互联网 发布:车解码器软件 编辑:程序博客网 时间:2024/05/21 17:13
作为一个开发JavaWeb应用的程序猿,都喜欢将用户登录后的用户信息(比如说用户id,用户名称)放入session中保存,之后在业务逻辑的开发中需要用到用户信息的时候就可以轻松又方便的从session中取到值。最近在开发微信小程序的时候碰到一个问题就是每次微信小程序请求的时候都会改变sessionid,这就会导致在后面的请求中取不到登录时保存在session中的用户信息,其实在前后端分离开发的时候也会碰到这个问题,后端程序员负责服务器端开发,提供接口程序,前端程序员负责客户端开发,调用后端程序员提供的接口程序获取数据,此时,前端程序员请求的每个接口程序也是都会改变sessionid的,因些也无法获取到登录时保存在session里的用户信息。
常见的session保持方式是,当浏览器向服务端发起http请求时,服务端检查在http头部cookie参数里是否包含sessionid,如果有sessionid就根据sessionid去查看存储在服务器端的session,session里保存的当前会话的一些信息。如果sessionid没有服务端就会分配一个,写到cookie字段里,浏览器下次发起其它请求的时候带上。
因此,为了解决上面我说的问题,我们可以这样做,客户端在第一次请求服务器时,也就是登录的时候获得一个sessionid,在本地存储起来,然后在之后每次请求服务器的时候就在header里面带上这个sessionid,写到cookie字段里。但是有个问题就是,你本地存储了这个sessionid后那么以后每次都会是这个sessionid,所以建议在程序每次启动的时候先清空本地存储的sessionid,然后发送首次请求获取新的sessionid。
如下为ajax请求时在header中带上sessionid的客户端代码:
$.ajax({ type: 'post', headers: { 'Cookie':'JSESSIONID=1k2naixut68f81q5rpr0c3n4vc' }, data: {}, dataType: 'json', timeout: 30000, url: '/test', success: function (res) { alert("success"); }, error: function (e) { alert("false"); } })
正解
摘自:
https://www.cnblogs.com/zengxiaoliang/p/6945055.html
- http请求的session管理
- 微信小程序开发:http请求的session管理
- 微信小程序开发《二》:http请求的session管理
- android http请求实现session管理
- http请求中session的创建时期
- http协议里面session的管理
- android 中http请求的容错管理
- HTTP Session 管理
- HTTP Session 管理[转]
- 用spring-session来管理http session
- HTTP协议 Tomcat Session管理的工作原理
- Ext下,ajax请求和普通http请求,session超时转到登录页面的解决方案
- Ext下,ajax请求和普通http请求,session超时转到登录页面的解决方案
- 对于Android的http请求的容错管理
- 对于Android的http请求的容错管理
- 对于Android的http请求的异常管理
- HTTP Session 的理解
- jmater测试web,多个http请求session无法传递的问题及解决方案
- Kylin系列-Apache Kylin原理学习之Cube的创建与Build
- 客户端更新系统
- jquery checkbox全选删除
- android 判断WIFI是否连接
- 条件随机场(Conditional Random Field)简介
- http请求的session管理
- c语言定义变量与声明的区别
- python进阶之HTML报头参数详解(爬虫)
- “黑科技”来袭!人脸识别技术广受关注
- 7、新手入手树莓派教程--树莓派屏幕的安装
- MFC自制进度条
- 测试过程中所关注的HTTP协议详解
- SpringMVC-FAQ(2):java.lang.NoClassDefFoundError: org/springframework/core/env/EnvironmentCapa
- Ubuntu14.04下安装与配置Apache服务器