当前位置: 技术问答>java相关
关于会话状态的客户端保留
来源: 互联网 发布时间:2015-06-06
本文导语: 我对会话的理解: 不管是Cookie还是保存在内存中,客户端与服务端应该有一个对应的ID,客户端发送请求到服务端时,应该同时将这个ID发送过去,从而使服务端能确认是哪个客户端.这个ID中最重要的内容应该是用户号. 不知...
我对会话的理解:
不管是Cookie还是保存在内存中,客户端与服务端应该有一个对应的ID,客户端发送请求到服务端时,应该同时将这个ID发送过去,从而使服务端能确认是哪个客户端.这个ID中最重要的内容应该是用户号.
不知道这个理解是否正确?如果正确的话,那就有一个问题,当客户端的浏览器被关闭后,服务端不能捕获这个动作,所以服务端的ID不会被清除,而客户端也是如此,客户端的ID也不会被清除.
如果服务端不允许有重复的用户号的话,如果客户端重新登录,就会出现这样的提示:该用户已经存在,不允许重复登录.这个情况我在玩游戏时遇到过.
另外,因为客户端ID也存在,如果用Cookie,就有可能被破解,只能通过加密来实现.如果在内存中,会造成内存泄漏(当然这点泄漏可以不考虑).
我是最终问题就是:能不能客户端关闭浏览器时,系统能检测到这个动作,从而能清除客户端及服务端的ID?
不管是Cookie还是保存在内存中,客户端与服务端应该有一个对应的ID,客户端发送请求到服务端时,应该同时将这个ID发送过去,从而使服务端能确认是哪个客户端.这个ID中最重要的内容应该是用户号.
不知道这个理解是否正确?如果正确的话,那就有一个问题,当客户端的浏览器被关闭后,服务端不能捕获这个动作,所以服务端的ID不会被清除,而客户端也是如此,客户端的ID也不会被清除.
如果服务端不允许有重复的用户号的话,如果客户端重新登录,就会出现这样的提示:该用户已经存在,不允许重复登录.这个情况我在玩游戏时遇到过.
另外,因为客户端ID也存在,如果用Cookie,就有可能被破解,只能通过加密来实现.如果在内存中,会造成内存泄漏(当然这点泄漏可以不考虑).
我是最终问题就是:能不能客户端关闭浏览器时,系统能检测到这个动作,从而能清除客户端及服务端的ID?
|
http://www.csdn.net/expert/topic/366/366150.xml?temp=.6104547
|
可以设定浏览器关闭后使cookie清除。
服务器端并不保存客户信息,每次响应请求时会得到客户信息的。
这样你的问题就不存在了。当然这是基于web模式的。
服务器端并不保存客户信息,每次响应请求时会得到客户信息的。
这样你的问题就不存在了。当然这是基于web模式的。
|
用户信息肯定是要保存在session中,而不能保存在Cookie中,
通过javaScript判断窗口关闭,然后清除session即可实现
通过javaScript判断窗口关闭,然后清除session即可实现
|
服务器端的会话在你关闭浏览后就清除了。怎么会出现你讲的情况?一个用户在一个会话中,服务器给他的ID是相同的,但两个会话时服务器就给该用户两个会话ID。比如打开两个浏览器窗口就算是两个会话,除非第二个窗口是由页面上其他链接生成的,