1、HTTP协议本身是“连接-请求-应答-关闭连接”模式的,是一种无状态协议(HTTP只是一个传输协议);
2、Cookie规范是为了给HTTP增加状态跟踪用的(如果要精确把握,建议仔细阅读一下相关的RFC),但不是唯一的手段;
3、所谓Session,指的是客户端和服务端之间的一段交互过程的状态信息(数据);这个状态如何界定,生命期有多长,这是应用本身的事情;
4、由于B/S计算模型中计算是在服务器端完成的,客户端只有简单的显示逻辑,所以,Session数据对客户端应该是透明的不可理解的并且应该受控于服务端;Session数据要么保存到服务端(HttpSession),要么在客户端和服务端之间传递(Cookie或url rewritting或Hidden input);
5、由于HTTP本身的无状态性,服务端无法知道客户端相继发来的请求是来自一个客户的,所以,当使用服务端HttpSession存储会话数据的时候客户端的每个请求都应该包含一个session的标识(sid, jsessionid 等等)来告诉服务端;
6、会话数据保存在服务端(如HttpSession)的好处是减少了HTTP请求的长度,提高了网络传输效率;客户端session信息存储则相反;
7、客户端Session存储只有一个办法:cookie(url rewritting和hidden input因为无法做到持久化,不算,只能作为交换session id的方式,即a method of session tracking),而服务端做法大致也是一个道理:容器有个session管理器(如tomcat的org.apache.catalina.session包里面的类),提供session的生命周期和持久化管理并提供访问session数据的api;
8、使用服务端还是客户端session存储要看应用的实际情况的。一般来说不要求用户注册登录的公共服务系统(如google)采用cookie做客户端session存储(如google的用户偏好设置),而有用户管理的系统则使用服务端存储。原因很显然:无需用户登录的系统唯一能够标识用户的就是用户的电脑,换一台机器就不知道谁是谁了,服务端session存储根本不管用;而有用户管理的系统则可以通过用户id来管理用户个人数据,从而提供任意复杂的个性化服务;
9、客户端和服务端的session存储在性能、安全性、跨站能力、编程方便性等方面都有一定的区别,而且优劣并非绝对(譬如TheServerSide号称不使用HttpSession,所以性能好,这很显然:一个具有上亿的访问用户的系统,要在服务端数据库中检索出用户的偏好信息显然是低效的,Session管理器不管用什么数据结构和算法都要耗费大量内存和CPU时间;而用cookie,则根本不用检索和维护session数据,服务器可以做成无状态的,当然高效);
10、所谓的“会话cookie”简单的说就是没有明确指明有效期的cookie,仅在浏览器当前进程生命期内有效,可以被后继的Set-Cookie操作清除掉。
分享到:
相关推荐
在这个压缩包中,我们聚焦于几个关键的ASP.NET技术点,包括页面关闭事件、页面缓存、页面间的传值、页面刷新和页面跳转。下面是对这些主题的详细探讨。 首先,我们来看页面关闭事件。在ASP.NET中,当用户离开一个...
这种会话可以是点对点的语音或视频通话,也可以是多方参与的语音或视频会议。 SIP协议具有以下特点: 1. **用户定位**:确定用于通信的终端系统。 2. **用户能力**:确定通信媒体和媒体参数。 3. **用户有效性**:...
11. 故障排查总结:针对连接数故障,需要关注进程数、会话数、系统资源限制以及系统连接释放的细节。同时,也要注意监听器本身的配置和网络相关的细节。 在处理Oracle数据库的连接数和会话数问题时,系统管理员需要...
下面是相关知识点的总结: 1. 什么是有状态会话Bean? 有状态会话Bean(Stateful Session Bean)是指在客户引用期间维护Bean中的所有实例数据的状态值,这些数据在引用期间可以被其他方法所引用,其他客户不会共享...
### Hibernate知识点总结 #### 一、Hibernate概述 Hibernate是一个开源的ORM(Object Relational Mapping,对象关系映射)框架,用于Java应用与关系型数据库之间的交互。它通过使用描述对象和数据库之间映射的元...
在实际操作中,WAS集群的部署和配置需要考虑以下几个关键点: 1. **确定负载均衡策略**:根据业务特点选择合适的负载均衡算法。 2. **设计会话管理方案**:根据业务需求选择最合适的会话共享策略。 3. **配置负载...
根据提供的文件信息,我们可以整理出一系列关于Java的重要知识点,这些知识点涵盖了Java基础...以上知识点总结涵盖了Java语言的核心概念和技术细节,对于准备Java面试或希望深入理解Java技术的开发者来说非常有价值。
### Http会话管理知识点概述 #### 一、会话概念及其重要性 - **定义**:在Web开发中,会话通常指的是用户打开浏览器并访问一系列网页直至关闭浏览器的整个过程。 - **目的**:会话管理的主要目标是跟踪用户在不同...
13. JSP九大隐式对象中四个作用域的大小与作用范围:page, request, session, application,分别对应页面,请求,会话,应用四个作用域,范围依次增大,page只在当前页面有效,request在一次请求中有效,session在...
总结起来,"集成redis实现集群会话管理.zip"的资料应该是指导如何在若依单体项目中利用Redis作为会话存储,实现跨服务器的会话共享,从而提高应用的性能和用户体验。这个过程中涉及Redis的安装配置、客户端集成、...
使用Struts时,需要注意以下几点: - **配置文件**:理解`struts-config.xml`或`struts2.xml`配置文件的结构和作用,包括Action配置、结果类型、拦截器等。 - **动作类(Action)**:编写业务逻辑,处理用户请求,...
总结来说,“电信设备-即时通讯群组会话方法及设备”涵盖了群组会话的各个方面,从基本概念、技术架构到具体实现方法,再到电信设备的角色和未来趋势。理解这些知识点,对于开发者、运维人员以及电信行业从业者都...
Mtrace的设计理念主要体现在以下几个方面: - **全局唯一标识**:Mtrace采用64位整数作为全局唯一的`TraceId`,确保每个请求都可以被唯一识别。 - **分层设计**:Mtrace系统分为多个层次,包括客户端SDK、代理Agent...
### 电脑共享设置的几点注意事项 #### 运行gpedit.msc进行设置 为了实现有效的电脑资源共享,我们需要通过运行`gpedit.msc`命令来进行一系列的配置调整。这些配置主要涉及计算机配置下的Windows设置、安全设置以及...
### 轻松美语会话超级100知识点总结 #### Unit1 **知识点一:Areyousure?** **定义与用法:** "Areyousure?" 是一种常用的表达方式,用来询问对方是否对某件事情有充分的信心或确信。这种表达通常用于当说话者对...
例如,13:45的监听会议,讨论了关于当前会话的反馈和总结;14:00的会议强调了问题的跟踪和解决;18:00的会议则讨论了具体的任务和责任分配。这些时间点和活动反映了分布式会话跟踪系统在实践过程中对会议和讨论的...
本篇将深入探讨“会话存储类”的相关知识点,包括会话的概念、工作原理、常见的会话存储机制以及如何实现一个会话存储类。 1. **会话(Session)的基本概念** - 会话是用户在与网站交互过程中的一系列连续操作,它...
在实际开发中,有几点需要注意: 1. Session管理:服务器需要合理地管理Session,避免内存消耗过大。这可能涉及设置Session过期时间、定期清理无活动的Session等策略。 2. 安全性:Session ID应尽可能随机且难以...