会话管理
什么是会话?
浏览器请求一次服务器,服务器接收请求,处理之后,给出响应,这就是一次会话。
什么是会话管理(跟踪)?
在多次浏览器跟服务器的会话过程中,服务器必须要记录客户端浏览器的一些信息,这个叫会话跟踪。
会话的作用?
因为HTTP协议是一种“无状态”协议(断开连接式协议),也就是服务器给客户端浏览器响应之后,就会断开网络连接。下次客户端浏览器请求服务器时会再建立网络连接。实际上HTTP协议是为了保证服务器的性能。而这种情况下,默认服务器是不会记录客户端浏览器的信息的。
所以会话跟踪 是用于维持客户端和服务器端通信。
如何进行会话管理?
Cookie:将状态保存在浏览器,每次向服务器端发请求时都将存在客户端的数据随着请求发送到服务器端,修改后再发回到客户端保存的这种模式叫做Cookie。
Session:将状态保存在服务器,并且为这组数据标示一个编号,只将编号发回给客户端。当客户端向服务器发送请求时只需要将这个编号发过来,服务器端按照这个编号找到对应的数据进行管理的这种模式。
=======================================================================================================================================
什么是cookie?
服务器临时存放在浏览器端的少量数据。
Cookie工作原理:
当浏览器访问服务器时,服务器会将少量数据发送给浏览器(使用set-cookie消息头);浏览器会将这些数据临时保存下来;当浏览器再次访问服务器时,会将之前保存的数据发送给服务器(使用cookie消息头)
cookie生存时间:默认情况下,浏览器会将cookie保存在内存里面。只要浏览器不关闭,cookie就会一直保存,浏览器关闭cookie被删除。
cookie.setMaxAge(int seconds)
seconds>0,浏览器会将cookie保存在硬盘上(文件形式存放),超过时间浏览器则删除cookie
seconds<0,即默认值,将cookie保存在内存。
seconds=0,立即删除cookie
编码问题:cookie只能保存合法的ASCII码字符,如果是中文需要将中文转换成合法的ASCII字符串。
String URLEncoder.encode(String str,String charset)
String URLDecoder.decode(String str,String charset)
cookie的限制
- 可以被用户禁止
- 只能保存少量数据(大约4K)
- 保存数量有限制(大约几百个)
- 只能保存字符串,对于中文需要编码。
=======================================================================================================================================
作者:danielJinyu
本文版权归作者和博客园共有,欢迎转载,但未经作者同意请保留此段声明,请在文章页面明显位置给出原文连接
Github:https://github.com/DanielJinyu