大家讨论一个session跟cookie的疑问

imfor 2011-02-14 05:21:10
好久不提问了,今天节日特殊 提个问。。

一般session用cookie记录客户端ID,关掉浏览器的话cookie失效 但session还是存在服务器内存里要20分钟后才会失效

但如果用户又登录一次 是重新申请一个内存空间 还是用 未失效的那个呢?
...全文
221 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
imfor 2011-02-16
  • 打赏
  • 举报
回复
覆盖 还是 新建?
sessionID能否找回它的前身?
还请楼下大侠给出答案。。(要带证据哦)
imfor 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 yangyalin8425 的回复:]
说反了吧,session关闭浏览器会失效,而cookie你不清的话会有个默认值过了这段会失效
[/Quote]
你还不理解原理
imfor 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 beckapi 的回复:]
用户登录后,服务器端将登录信息保存在session里,同时在客户端生成一个cookie保存这个session的ID,当用户关闭浏览器时,这个cookie会过期,于是再打开页面时,虽然服务器端的信息还有,但找不到客户端的sessionId
就要求重新登陆了(不关闭浏览器,但是清空浏览器cookie,同样也需要重新登录,原理一样),重新登陆后服务端覆盖掉原来的session,客户端重新生成一个ses……
[/Quote]
我比较同意你的观点,大家说法不一 有没有测试的方法?
flyerwing 2011-02-15
  • 打赏
  • 举报
回复
session就是cookie
自然框架 2011-02-15
  • 打赏
  • 举报
回复
cookieID没了,找不到旧的,只能用新的了。
yangyalin8425 2011-02-15
  • 打赏
  • 举报
回复
说反了吧,session关闭浏览器会失效,而cookie你不清的话会有个默认值过了这段会失效
ltcszk 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 imfor 的回复:]

引用 11 楼 msdnxgh 的回复:
最简单一句,就是要重新登陆,因为,之前那个COOKES己经失效了,他内面有生成SEEION的ID,如果,SEEION还没失效也好,但是己经无法找到了,就因那个有它ID的COOKES己经失效了,死忘了.

嗯 我知道是重新登录,我想知道登陆后是在服务器上新建一个session还是用原来未过期的那个session
[/Quote]
当然是新建一个因为没有了sessionid不可能找回原来的session
ltcszk 2011-02-15
  • 打赏
  • 举报
回复
sessionid是利用cookie记录在客户端的,所以cookie清掉的话session自然也就失效了
BeckLikeCoding 2011-02-15
  • 打赏
  • 举报
回复
用户登录后,服务器端将登录信息保存在session里,同时在客户端生成一个cookie保存这个session的ID,当用户关闭浏览器时,这个cookie会过期,于是再打开页面时,虽然服务器端的信息还有,但找不到客户端的sessionId
就要求重新登陆了(不关闭浏览器,但是清空浏览器cookie,同样也需要重新登录,原理一样),重新登陆后服务端覆盖掉原来的session,客户端重新生成一个sessionId。服务器端的session过期时间根据服务器的设置而定。


imfor 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 msdnxgh 的回复:]
最简单一句,就是要重新登陆,因为,之前那个COOKES己经失效了,他内面有生成SEEION的ID,如果,SEEION还没失效也好,但是己经无法找到了,就因那个有它ID的COOKES己经失效了,死忘了.
[/Quote]
嗯 我知道是重新登录,我想知道登陆后是在服务器上新建一个session还是用原来未过期的那个session
imfor 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wxr0323 的回复:]
如果这个用户的session 没有失效的话 那么他应该不用登陆了吧?是自动登录

你说的登录时不是输入账号和密码。这样的话这个SESSION就已经没了。。
[/Quote]
session跟客户端链接一般用cookie记录一个id的,关掉浏览器 cookie失效 id就没了,所以sesseion就找不到了,,,
imfor 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 wuyq11 的回复:]
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。但程序需要为某个客户端的请求创建一个session的时候,服务器首先……
[/Quote]
session id是什么样的,同为session["user"]的 session id一样吗?
比如系统原来有一个session["user"]还未失效,这时候用户重新登录,是覆盖这个 还是重新建一个?
R_zhanche 2011-02-14
  • 打赏
  • 举报
回复
调用Cookies集合的 Remove 方法可从服务器端的集合中移除 Cookie,
使 Cookie 不会被发送至客户端。但是,如果客户端已存在 Cookie,则该方法无法从客户端将其移除。
解决方法是,将 Cookie 的到期日期设置为过去的日期,让用户的浏览器来删除 Cookie

创建浏览器进程的cookies(即关闭浏览器就会自动清空)
不要设置Expires属性就是默认的浏览器进程cookies
心灵彩虹 2011-02-14
  • 打赏
  • 举报
回复
[Quote=引用楼主 imfor 的回复:]
好久不提问了,今天节日特殊 提个问。。

一般session用cookie记录客户端ID,关掉浏览器的话cookie失效 但session还是存在服务器内存里要20分钟后才会失效

但如果用户又登录一次 是重新申请一个内存空间 还是用 未失效的那个呢?
[/Quote]根据浏览器不同,是不一样的,ie是另开一个session,而firefox是用的原来的。
MSDNXGH 2011-02-14
  • 打赏
  • 举报
回复
你再也无法找回那个SEEION的ID,那么,那个SEEION就不会被调用,慢慢等到过期时间,然后,失效,
MSDNXGH 2011-02-14
  • 打赏
  • 举报
回复
最简单一句,就是要重新登陆,因为,之前那个COOKES己经失效了,他内面有生成SEEION的ID,如果,SEEION还没失效也好,但是己经无法找到了,就因那个有它ID的COOKES己经失效了,死忘了.
wuyq11 2011-02-14
  • 打赏
  • 举报
回复
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否包含了一个session标识-称为sessionid,如果已经包含一个sessionid则说明以前已经为此客户创建过session,服务器就按照sessionid把这个session检索出来使用(如果检索不到,可能会新建一个,这种情况可能出现在服务端已经删除了该用户对应的session对象,但用户人为地在请求的URL后面附加上一个JSESSION的参数)如果客户请求不包含sessionid,则为此客户创建一个session并且生成一个与此session相关联的sessionid,这个sessionid将在本次响应中返回给客户端保存
wwwhhb4004 2011-02-14
  • 打赏
  • 举报
回复

求高手解答
mingl11 2011-02-14
  • 打赏
  • 举报
回复
如果浏览器完全关闭的话 服务器的session也要20分钟后才消失的吗?

但平时浏览器完全关闭的话,重新开好像session就没了呀。
如果只是将一个网站关闭,还有其他网站开着的话session好像还有的。

期待高手解答。。。
Rock870210 2011-02-14
  • 打赏
  • 举报
回复
关掉浏览器的话应该会重新创建Session。如果没有关闭浏览器,只是关掉选项卡,应该可以用原来的Session。
---没验证过
加载更多回复(5)

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧