一:基本解释
会话:指的是浏览器和服务器之间的多次请求和响应
也就是说你打开浏览器,并且访问某个页面开始,你的浏览器和服务器之间就建立了某种连接,这种连接就叫会话。当关闭浏览器时,连接断开,会话则挂断。
我们可以想象这样的场景:当你与一位好友进行电话通讯时,这就相当于建立了会话连接,而双方的通讯工具则可以想象为浏览器和服务器。
会话技术有两种:一种是通讯信息存于客户端(通常为浏览器)的Cookie技术,一种为通讯信息存于服务器的Session技术。这两种技术如何应用以及相应的优缺点,下面我们一一讲解。
二:Cookie技术
我们想象这样一个场景,当你拿着存折去银行存钱时,你的存折上会有你的账户信息以及本次存入的钱数等信息,这些信息就相当于一个或多个Cookie信息,这些信息呈现在你的存折上(相当于客户端),你可以通过这些信息来查阅你究竟存了多少钱(毕竟快过年了)。下面讲解具体技术应用
1:Cookie技术的使用
1>创建cookie对象,绑定数据
一:基本解释
会话:指的是浏览器和服务器之间的多次请求和响应
也就是说你打开浏览器,并且访问某个页面开始,你的浏览器和服务器之间就建立了某种连接,这种连接就叫会话。当关闭浏览器时,连接断开,会话则挂断。
我们可以想象这样的场景:当你与一位好友进行电话通讯时,这就相当于建立了会话连接,而双方的通讯工具则可以想象为浏览器和服务器。
会话技术有两种:一种是通讯信息存于客户端(通常为浏览器)的Cookie技术,一种为通讯信息存于服务器的Session技术。这两种技术如何应用以及相应的优缺点,下面我们一一讲解。
二:Cookie技术
我们想象这样一个场景,当你拿着存折去银行存钱时,你的存折上会有你的账户信息以及本次存入的钱数等信息,这些信息就相当于一个或多个Cookie信息,这些信息呈现在你的存折上(相当于客户端),你可以通过这些信息来查阅你究竟存了多少钱(毕竟快过年了)。下面讲解具体技术应用
1:Cookie技术的使用
2>发送Cookie对象
3>获取Cookie,获取数据
2:Cookie的保存问题
1>保存时间问题
在默认情况下,当浏览器关闭时候在会话期间产生的cookie信息就销毁
我们可以进行持久化存储:
SetMaxAge(int seconds)
当seconds为正数,cookie信息会自动存入硬盘文件中,并指明相应
cookie的存活时间,当时间到后,cookie信息自动失效。
当seconds为负数,cookie信息进行默认值操作。
当seconds为0,删除cookie信息。
2>编码问题
cookie信息在tomcat8之前不能存储中文信息,在tomcat8之后,支持大部分中文信息存储,但是特殊符号还不能覆盖全面,建议这种情况下,进行URL编码存储。
3:Cookie的作用和特点
1:cookie存储信息在客户端
2:cookie对一个客户端保存单个cookie大小为4kb(无扩展)
3:同一域名下总cookie数限制在20以内(无扩展)
作用:
1:cookie技术大部分用于数据不敏感部分。因其数据存储在客户端,数据不
安全。
2:当客户端发送请求到服务器,服务器可根据请求所携带的cookie信息进行
客户端识别。
三:Session技术
我们承接cookie技术的引入场景,存折存钱。当你存钱,银行服务器肯定会查询你的银行账户信息并进行相应存入操作,这时候你的最新的存款信息就会更新到银行服务器里边,这就相当于我们存储信息到服务器的Session技术
1:Session技术的应用
1>获取session对象
2>使用session对象
此步完成后就相当于在服务器中存储session专用的空间存入数据及响应的 键值
3>获取session数据
2:session的保存问题
默认session保存时间为30分钟,当超过这个时间,session失效。
我们可以在web.xml中进行相应配置:
其中根据自己的需求设定时间
也可在代码中设定session的有效时间:
3:session的客户端、服务器关闭异步问题
1>当关闭浏览器,服务器正常运行,默认情况下会话产生的session失 效,这时候我们可以根据session依据cookie实现这一原理进行持久化,新建一个cookie持久保存session的ID信息,当浏览器重启,发出请求,携带保存的cookie信息,浏览器进行识别并带回对应客户端之前会话产生的session信息。
2>当服务器关闭,客户端正常开启,tomcat自动完成下列功能:
session的钝化:在服务器关闭前,将相应session信息存入硬盘
session的活化:在服务器开启后,将所存储的session信息转入内存为 session对象。
4:session的优缺点:
优点:简化了数据的传递、适合信息敏感操作应用
缺点:占用服务器资源,当进行大数据量开发时,session过多会影响服务 器的性能。
通过本次学习,相信你已经掌握了cookie和session技术,但是我们还缺一些实战。加油,每天都在前进的路上才不会有遗憾!
如有技术内容需要探讨,请加我QQ;如果还没有学到撑,请关注我公众号,我是小渣渣,我在小札札空间等你!