同一个游览器里面打开的网页,指向同一个应用的所有标签卡网页,使用同一个session。简单的说,在firefox里面打开标签卡1,指向地址1,提交了一个form,在session时间内,又打开了一个标签卡2,指向地址1,又提交了一个form。那么这2个标签卡使用的是同一个session.
例子:后台用得tomcat。session超时设置的是10min.
Step1:打开标签卡A,在地址栏输入:http://localhost:8085/TestWeb/
1.访问方式为get
2.请求头里面没有cookies信息,说明确实是第一次访问。响应头里面出现了set-cookiees,注意JSESSIONID=D937E13AF97F5FECEA9EEE4DD2B4C2E3;
Step2:打开一个新标签B,同样访问http://localhost:8085/TestWeb/
注意请求头里面出现了JSESSIONID=D937E13AF97F5FECEA9EEE4DD2B4C2E3;而响应头里面没有了set-cookiees了。
当时间超过session设置的10min
Step3:在标签A中,再次访问http://localhost:8085/TestWeb/
1.请求头中的是原来cookies中存放的JSESSIONID.
2.响应头中,返回了set-cookiees,新的JSESSIONID.
总结:
1.Tomcat中,通过JSESSIONID 维护了session 会话;
2.session 超时指的是会话中,两次访问的间隔时间是否大于了timeout中设置的时间,不是指session被创建的时间与这次访问之间的间隔时间。
- 大小: 10.3 KB
- 大小: 9.8 KB
- 大小: 11.4 KB
分享到:
相关推荐
Javaweb项目Session超时解决方案 在Java Web开发中,Session机制为我们提供了许多方便,Session是由浏览器和服务器之间维护的。Session超时理解为:浏览器和服务器之间创建了一个Session,由于客户端长时间(休眠...
在Tomcat中,会话管理可以通过`web.xml`配置,例如设置会话超时、是否启用跨域会话等。同时,确保服务器允许客户端发送`jsessionId`,这通常默认是开启的,但如果遇到问题,可能需要检查服务器配置。 总结,Android...
可以通过设置合理的Session超时时间、使用Session监听器来监控Session状态,或者使用分布式Session存储(如Redis或Memcached)来解决高并发场景下的Session管理问题。 7. **安全性考虑**: Session ID的安全性至关...
服务器会在响应中包含一个名为`ASP.NET_SessionId`(如果是ASP.NET应用)或`JSESSIONID`(如果是Java应用)的cookie,这个cookie包含了识别Session所需的唯一标识符。之后,每次用户向服务器发送请求时,都会携带这...
4. **session过期**:为了防止无限期地保持登录状态和占用服务器资源,session通常会有一个预设的超时时间。一旦超过这个时间用户没有新的请求,session就会被销毁,用户被视为离线。 5. **安全考虑**:使用session...
此外,web应用的配置文件(如web.xml)也可以全局设置Session的超时时间。 5. **作用域**:Session作用域局限于一次完整的用户会话,即从用户打开浏览器访问项目开始,到浏览器关闭为止。由于默认的jsessionid ...
connection.setRequestProperty("Cookie", "JSESSIONID=" + sessionId); ``` 2. **POST请求**: - 对于POST请求,除了设置请求方法为POST外,还需要写入请求体。例如,使用`java.io.OutputStream`写入数据。 ```...
在本主题“tomcat7_redis_Session共享所需jar包及使用方法”中,我们将探讨如何利用Redis这一高性能的键值存储系统来实现Tomcat 7中的Session共享,以满足集群部署的需求。 首先,Redis作为一个内存数据结构存储...
Session是Web应用程序中用于跟踪用户状态的一种机制,它在客户端通过Cookie携带一个唯一标识符(JSESSIONID),使得服务器能够识别并维持用户的会话信息。 在Tomcat中,Session的管理主要涉及以下几个核心类: 1. ...
开发者需要注意Session超时的管理,避免因长时间未活动导致的无效会话占用服务器资源。同时,对于敏感信息,应尽量避免直接存储在Cookie中,而是通过Cookie的值作为索引,从服务器的Session中获取数据。 **总结** ...
通过在HTTP请求头中添加一个名为JSESSIONID的Cookie,服务器可以识别出后续请求来自哪个特定的session。这个Cookie的值通常是一个唯一的标识符,服务器用它来查找对应的session数据。 描述中提到的“博文链接:...
这里设置了session超时时间为30分钟,同时设置`JSESSIONID` cookie的安全属性为`http-only`,防止通过JavaScript访问。 5. **测试和优化**: 部署应用后,检查session是否能正常在不同的Tomcat实例间共享。如果...
这里,`server`、`port`和`database`分别指定了Redis服务器的地址、端口和数据库编号,`maxInactiveInterval`设置了Session超时时间,`sessionName`则是Session ID的名称。 配置完成后,启动Tomcat集群,每个节点...
当用户登录成功后,服务器会创建一个Session对象,为每个Session分配一个唯一的ID(JSESSIONID)。这个ID通常会被封装在一个Cookie中,然后发送给客户端。在后续的HTTP请求中,客户端通过Cookie将Session ID回传给...
可以通过设置session的超时时间以及Redis的过期策略来实现。 通过以上步骤,我们可以成功地在Tomcat和Tengine之间实现基于Redis的Session共享,提升分布式系统的可用性和用户体验。记住,配置过程中可能会遇到各种...
- **Session超时**:确保处理服务器可能设置的Session超时情况,当Session失效时,需要重新登录或重新获取Session ID。 - **安全性和隐私**:虽然Session比Cookie更安全,但仍然需要考虑数据的安全传输和防止跨站...
proxy_set_cookie_session $cookie_JSESSIONID; proxy_cookie_path / /; # 使Nginx在转发请求时不修改cookie路径 # 使用哈希模式实现sticky session proxy_pass_request_cookies on; proxy_set_header Cookie $...
本文将详细介绍如何使用Tomcat和Redis实现Session共享,并提供相关的jar包及配置说明。 首先,我们需要理解Redis的作用。Redis是一个高性能的键值对数据库,支持多种数据结构,如字符串、哈希、列表、集合等,可以...
- `sessionName`是Session ID的cookie名称,默认为`JSESSIONID`。 完成这些步骤后,重启Tomcat,它就会使用Redis来管理Session数据了。这样,即使服务器重启或负载均衡,用户的Session信息也能在Redis中保持一致,...
3. **调整session配置**:在`web.xml`中,配置session的超时时间以及其他属性,确保它们与Redis的配置一致。 ```xml <session-config> <session-timeout>30</session-timeout> <name>JSESSIONID <!-- 其他...