精华帖 (1) :: 良好帖 (9) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-12-20
最后修改:2010-12-20
mqlfly2008 写道
mlw2000 写道
bill2004158 写道
tianhandigeng 写道
另外,经常在论坛看到或听到同事说ie关掉了,session就没了,而且还争论的唾沫横飞,偶就感到很好玩,只能不置可否地笑笑。
session 在服务器端得嘛,关IE鸟事啊。。。。 楼主说的应该是在讨论session的客户端(IE,firefox,chrome,甚至自己写的一个支持http的小程序)支持,看楼主的内容水平应该这个(session 在服务器端得嘛,关IE鸟事啊)道理
应该是我语言表达不清楚所致,沟通和表达是一切的讨论(甚至争执、个人打架、国家打帐、星际战争)的根源。
我换一种说法: 在N久N久之前,人们发明了HTTP,基于不明真相的原因,http是无状态的,人们非常喜欢这个协议;
但是为了更好的用户体验(说实话我非常不喜欢这个借口),程序员们于是尝试通过添加一段字符串来作为交互ID,我们称之为SessionID(字符串名字也不限这个,如果你自己写client和server,想用什么用什么),当支持http协议的client端(http client端N多,不要没事总想着浏览器)发起请求时就会带上这个字符串,至于怎么带上,方式不限(隐藏字段,默认cookie字段,自定义cookie字段,url地址,等等等等),服务端拿到后就会开心的sysout("hello 我知道你是谁了:"+SessionID)。
再后来,程序员们为了更懒,在服务端把这个sessionID字符串和一个对象关联(未必是对象,随你喜欢,反正是和一种资源关联),于是每次客户端请求时,他们能从这个“关联资源”中取得很多信息,程序员们非常的高兴。
一次加班后,一群程序员去泡吧,无意中聊到了那个让人爱恨交加的字符串,一个叫javaeye的程序员说,我们把服务器端的那个关联资源起名叫session吧,大家起哄认同。
N年之后的2010年,在景德镇的网络上有人发了篇帖子“Session、Cookie 完全理解”,Zzz
|
|
返回顶楼 | |
发表时间:2010-12-20
引用 以Ctrl+N或Shift+点击链接方式打开的IE窗口是运行在同一个进程空 间的,cookie数据在进程空间中是共享的,而双击桌面上的ie图标打开的是一个新的进程,会话级的cookie(未明确指定生存期的cookie)在 新的IE窗口里面是无法访问到的。
问一下,你指的IE是IE6吗?至少我用IE8,在所谓的“新的IE窗口里面”是可以访问的 |
|
返回顶楼 | |
发表时间:2010-12-20
mlw2000 正解
|
|
返回顶楼 | |
发表时间:2010-12-20
非常好,谢谢,我最近为这个东西来的
|
|
返回顶楼 | |
发表时间:2010-12-21
基本理解了,感谢楼主,
但还是有一个细节不懂, 在服务端把这个sessionID字符串和一个对象关联, 请问这个关联是怎么做到的,能不能举个例子 |
|
返回顶楼 | |
发表时间:2010-12-21
每次发送请求都带一个唯一ID,服务器端维护一个table就OK啦
|
|
返回顶楼 | |
发表时间:2010-12-21
mlw2000 写道
mqlfly2008 写道
mlw2000 写道
bill2004158 写道
tianhandigeng 写道
另外,经常在论坛看到或听到同事说ie关掉了,session就没了,而且还争论的唾沫横飞,偶就感到很好玩,只能不置可否地笑笑。
session 在服务器端得嘛,关IE鸟事啊。。。。 楼主说的应该是在讨论session的客户端(IE,firefox,chrome,甚至自己写的一个支持http的小程序)支持,看楼主的内容水平应该这个(session 在服务器端得嘛,关IE鸟事啊)道理
应该是我语言表达不清楚所致,沟通和表达是一切的讨论(甚至争执、个人打架、国家打帐、星际战争)的根源。
我换一种说法: 在N久N久之前,人们发明了HTTP,基于不明真相的原因,http是无状态的,人们非常喜欢这个协议;
但是为了更好的用户体验(说实话我非常不喜欢这个借口),程序员们于是尝试通过添加一段字符串来作为交互ID,我们称之为SessionID(字符串名字也不限这个,如果你自己写client和server,想用什么用什么),当支持http协议的client端(http client端N多,不要没事总想着浏览器)发起请求时就会带上这个字符串,至于怎么带上,方式不限(隐藏字段,默认cookie字段,自定义cookie字段,url地址,等等等等),服务端拿到后就会开心的sysout("hello 我知道你是谁了:"+SessionID)。
再后来,程序员们为了更懒,在服务端把这个sessionID字符串和一个对象关联(未必是对象,随你喜欢,反正是和一种资源关联),于是每次客户端请求时,他们能从这个“关联资源”中取得很多信息,程序员们非常的高兴。
一次加班后,一群程序员去泡吧,无意中聊到了那个让人爱恨交加的字符串,一个叫javaeye的程序员说,我们把服务器端的那个关联资源起名叫session吧,大家起哄认同。
N年之后的2010年,在景德镇的网络上有人发了篇帖子“Session、Cookie 完全理解”,Zzz
请问这段话的重点是不是在“一个支持http的小程序”是如何实现将sessionid传递给服务器端的。我其实也不太明白,讲解了很多好像还是表达“客户端从cookie或其他方式中取sessionid然后传给服务器端,在据此id从服务器端存储session对象的散列表中取session。”这个意思,并没有什么特别的呀。 |
|
返回顶楼 | |
发表时间:2010-12-21
Cookie是保存在客户端的数据,Session是保存在服务器端的数据。。。
为什么要分别保存在客户端(PC)和服务器端。。。 这点最重要,理解了这点,再扩展,应用等,都能较快的掌握。。。 |
|
返回顶楼 | |
发表时间:2010-12-21
一个人旅行 写道
mlw2000 写道
mqlfly2008 写道
mlw2000 写道
bill2004158 写道
tianhandigeng 写道
另外,经常在论坛看到或听到同事说ie关掉了,session就没了,而且还争论的唾沫横飞,偶就感到很好玩,只能不置可否地笑笑。
session 在服务器端得嘛,关IE鸟事啊。。。。 楼主说的应该是在讨论session的客户端(IE,firefox,chrome,甚至自己写的一个支持http的小程序)支持,看楼主的内容水平应该这个(session 在服务器端得嘛,关IE鸟事啊)道理
应该是我语言表达不清楚所致,沟通和表达是一切的讨论(甚至争执、个人打架、国家打帐、星际战争)的根源。
我换一种说法: 在N久N久之前,人们发明了HTTP,基于不明真相的原因,http是无状态的,人们非常喜欢这个协议;
但是为了更好的用户体验(说实话我非常不喜欢这个借口),程序员们于是尝试通过添加一段字符串来作为交互ID,我们称之为SessionID(字符串名字也不限这个,如果你自己写client和server,想用什么用什么),当支持http协议的client端(http client端N多,不要没事总想着浏览器)发起请求时就会带上这个字符串,至于怎么带上,方式不限(隐藏字段,默认cookie字段,自定义cookie字段,url地址,等等等等),服务端拿到后就会开心的sysout("hello 我知道你是谁了:"+SessionID)。
再后来,程序员们为了更懒,在服务端把这个sessionID字符串和一个对象关联(未必是对象,随你喜欢,反正是和一种资源关联),于是每次客户端请求时,他们能从这个“关联资源”中取得很多信息,程序员们非常的高兴。
一次加班后,一群程序员去泡吧,无意中聊到了那个让人爱恨交加的字符串,一个叫javaeye的程序员说,我们把服务器端的那个关联资源起名叫session吧,大家起哄认同。
N年之后的2010年,在景德镇的网络上有人发了篇帖子“Session、Cookie 完全理解”,Zzz
请问这段话的重点是不是在“一个支持http的小程序”是如何实现将sessionid传递给服务器端的。我其实也不太明白,讲解了很多好像还是表达“客户端从cookie或其他方式中取sessionid然后传给服务器端,在据此id从服务器端存储session对象的散列表中取session。”这个意思,并没有什么特别的呀。
|
|
返回顶楼 | |
发表时间:2010-12-21
最后修改:2010-12-21
在application中
放 一个hashmap 可以模拟 session 不过内存很快用光光 Map session = appliction.getAttribter('mysession'); Cookie me = request.getCookie(); String sessionid = me.get('sessionid'); if(sessionid==null||sessionid.length==0){ sessionid = makeAKey(session.getKeySet()); } Objection obj = session.get(sessionid); sysout(obj); session.set(sessionid,"i will be back"); repson.setCookie(....('sessionid',sessionid)); |
|
返回顶楼 | |