SESSION跨域访问的相关总结
来源:互联网 发布:守望先锋cg 知乎 编辑:程序博客网 时间:2024/06/06 01:17
跨域session:
分服务端与客户端jar。
1.服务端:
服务端数据存储在sqlite中,使用唯一标识sessionid来标识sessionid用户,有单独线程处理过期session数据。
2.客户端
<1>客户端不同浏览器session时效问题解决:客户端添加session数据时只需传递request对象,为了唯一标识一个浏览器窗口,使用httpsession存储session id,在其他浏览器打开时可以使用httpsession中是否存在sessionid来判断是否更换浏览器来使session失效。
<2>客户端相同浏览器窗口失效问题解决:使session失效时间与自研session的失效时间一致,将httpsession的失效时间同步到服务端进行存储。
客户端客户端获取session数据时只需传递session id即可。
3.测试:因我们的项目均把contextPath设置为“/”,相同域不同应用之间session会相互覆盖。
session是通过在客户端生成一个cookie,所有请求会带上这个cookie。一个cookie的NAME、Domain和Path属性值均相同,则会覆盖,若未设置Domain域,则域为ip(不包括端口),因此应用A的session被应用B的session覆盖了。
经测试:tomcat、weblogic、websphere的session默认都是JSESSIONID 为key来识别的,因此在没有特别设置下,同一个域下的多个应用session会互相覆盖。
4.是否能解决相同域不同端口导致session覆盖的问题?
使用cookie存储是有问题的,存储完session后是无法立即使用的,因为cookie必须http请求结束后才能写入浏览器。
设置sessionCookieName即可。如下:
通过在contex中设置:
1 <Context sessionCookieName="jss" >
2.内嵌Tomcat:tomcat.addWebapp("/",WEB_APP_PATH).setSessionCookieName("JSESSIONID:"+startPort);
5.测试
设置完后导致读取session时读取不到上次设置的session数据,导致每次都会生成新的session。
6.
- SESSION跨域访问的相关总结
- session的相关介绍总结
- session相关的知识总结
- 关于https的访问请求相关总结
- spring session redis跨域共享session的总结
- 解决同一IP不同端口或跨域访问站点iframe应用session丢失的问与及ASP.NET 开发相关超时设置
- iframe 跨域访问,session丢失的问题解决方案
- iframe 跨域访问,session丢失的问题解决方案
- ie8/9本地的跨域访问时session变化
- 解决跨域访问时的session保持问题
- hibernate的session相关
- Session的相关知识点
- flash跨域访问相关
- 访问WMI的相关公用方法总结 -C#
- iframe跨域访问cookie、Session
- 跨域访问会导致session失效
- Ajax跨域Session和跨域访问
- 解决跨域访问session丢失问题
- SQL SUM() 函数、SQL GROUP BY 语句、SQL HAVING 子句
- android 5.0及以上,seekbar thumb 透明效果出现父布局背景颜色的解决方法
- C/C++——多态性和虚函数
- C# 中的委托与事件
- [Built-in Functions] - N
- SESSION跨域访问的相关总结
- Using GLEW, GLFW, and GLM
- git 使用 常用配置
- 无法安装64位版本的Office,因为在您的PC上找到了以下32位程序:
- rvm安装ruby简易教程
- linux创建sftp账号及访问权限
- $_SERVER 函数中 QUERY_STRING 和 REQUEST_URI
- mybatis简单sql使用java注解而不是xml配置
- c# 鼠标拖动缩放图片