以前一直以为cookie就是一直保存在客户端的会话信息,而session是保存在服务器断的会话信息,浏览器关闭以后就会被清除,今天看帖子突然发现大错特错,搜了些帖子以及博客详细看了下,都是讲会话cookie和持久cookie,结果发现session就是cookie
http://rubyeye.iteye.com/blog/196117 这个讲的浅显易懂
引用
当你第一次访问一个网站的时候,网站服务器会在响应头内加上Set-Cookie:PHPSESSID=nj1tvkclp3jh83olcn3191sjq3(php服务器),或Set-Cookie JSESSIONID=nj1tvkclp3jh83olcn3191sjq3(java服务器)信息,此信息是服务器随机生成的,放在服务器内存里,为了标识唯一的客户端用户,内容不会重复,这就是sessionid.
当浏览器得到这个sessionid会将它放在自己的进程内存里,这里不同的浏览器会有所不同,IE进程间不能共享这个sessionid,也就是新开一个IE将不能共享这个sessionid;而Firefox进程间可以共享.然后你继续发请求给这个网站的时候,浏览器就会把这个sessionid放在请求头里发送给该服务器了,这样服务器得到sessionid后再和自己内存里存放的sessionid对比锁定客户端,从而区分不同客户端,完成会话.
可以看出如果用这种方式,当用户在会话的过程中关闭浏览器结束进程,则这个sessionid将消失,如果用户又打开浏览器想继续这次会话的时候,就会因为发送的请求中没有这个sessionid而使服务器无法辨别该把那个session信息给他,注意(这个时候服务器端的sessionid和sessionid所指向的session都还存在,只是没有正确的sessionid和它匹配而占用服务器内存,只有session过期或服务器重启才释放内存).
上面这种方式叫会话cookie,把cookie放在浏览器内存里,只能在这个浏览器的内存范围里完成会话,是一种不长久的方式,为了能长久会话,就出现了持久化cookie,把cookie固化在用户的计算机上,现在的cookie不单单能存放sessionid,还能放用户信息,样式表信息等.
如果用户禁止了所有cookie的使用,那么会话cookie和持久化cookie都不能用了,有个方案也可以解决问题,就是URL重写,这里要说下的就是URL重写只能实现会话cookie的效果,持久会话实现不了.
cookie分析的例子
http://hhlux.iteye.com/blog/334729
分享到:
相关推荐
直接关闭浏览器(或者强制关闭浏览器进程、死机等),服务器无法处理用户退出网站的请求,此举将会导致session失效,下面整理了一些解决方法,感兴趣的朋友可以参考下哈
众所周知,Session对象的生命周期关闭浏览器之后就会销毁,那该如何持久化的保存Session对象的数据呢?(ps:将session对象的值保存到数据库当中就可以了)使用SQL Server数据库保存Session session对象案例 记住...
在我的上篇博客中提到,可以改变session的生命周期(即使关闭了浏览器session数据也在),但是经过我的测试,关闭电脑或者重启电脑后,session的生命周期也会消失,即使你设置了timeout,也是一样的。这就让我很是...
;处理session存取的模式(预设:files) session.save_handler = files ;session档案存放路径(预设:/tmp) session.save_path = /tmp ;...session使用cookie的生存期,以秒为单位(预设:随浏览器关闭而消失 0) sess
session的作用:request.getSession()可以帮你得到HttpSession类型的对象,通常称之为session对象,session对象的作用域为一次会话,通常浏览器不关闭,保存的值就不会消失,web.xml中有一个session time out的地方,...
session是基于访问的进程,记录了一个访问的开始到结束,当浏览器或进程关闭之后,session也就“消失”了,而cookie更多地被用于标识用户,它可以是长久的,用于用户跟踪和识别唯一用户(Unique Visi
如果不设置 过期时间,则表示这个 Cookie生命周期为 浏览器会话期间 , 只要关闭浏览器,cookie就消失了. 这个生命期为浏览会话期的cookie,就是会话Cookie; 存储: 一般保存在内存,不在硬盘; 如果设置了过期...
若设置了生命周期则相反,不随浏览器的关闭而消失,这些cookie仍然有效直到超过设定的过 期 时间。 session 一种类似散列表的形式保存信息, 当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个...
购物车思路:使用 session 功能识别不同浏览器用户,使得用户不管是否登录了网站,均能够把想要购买...在 settings.py 文件中加入下列语句,表示要求在浏览器一关闭的时候 session 就会失效。 SESSION_EXPIRE_AT_BROWS
不能存在session,生命周期短,浏览器关闭浏览器数据消失 1. 数据库 可以的 优点:安全,存储量不受限制 缺点:存储在数据库中必须登录 2. 使用浏览器的cookie来存储购物车 优点:不用登录,因为数据存储在...
session虽然可以实现跳过登陆验证,但是它是临时的,关闭页面后或者关闭浏览器之后,它就会消失,我觉得不是很方便。 学习链接:https://www.runoob.com/php/php-sessions.html 后来我试过一种方法就是就是给数据表...
HTML5 提供的本地存储功能,使得...2. sessionStorage: 针对一个session的数据存储,该tab关掉就会消失。 目前大部分浏览器都已经很好地支持了 HTML5 ,但了为安全,使用前还是应该做客户端检测: if (typeof(Storage)
同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新...
在客户端运行的JS是不能操作用户电脑磁盘中的文件的(保护客户端运行的安全) 1、JS中的本地存储: 使用JS向浏览器的某一个...sessionStorage:信息的会话存储,会话窗口存在信息也存在,会话窗口关闭信息就消失了 2、C
sessionStorage(会话存储),只有在浏览器被关闭之前使用,创建另一个页面时同意可以使用,关闭浏览器之后数据就会消失。 某个博主的测试localStorage兼容情况,如下:Chrome4+ 开始支持localStorage Firefox3.5+...
3)修正控件段落格式及选择字体的下拉列表功能会使页面其它Select选择框消失的BUG! 4)修正去掉下拉列表功能后,控件无法正常使用的BUG! 5)修正商业版采用Asp.Net Ajax支持方式编译后出现的一些BUG! 6)修正FIREFOX2.0下...
b/s: 基于浏览器和服务器架构 web程序 c/s: QQ SVN client客户端+ 服务器简单的基于文本行的协议: redis memcache 区别: 都是存储数据的,memcache直接保存到内存中,redis 保存到内存中,关闭之后保存到硬盘中,...
□ 这是因为SWFUpload在上传时相当于重新开辟了一个新的Session进程,因此无法与原有程序的Session保持一致,这就需要在上传时传递原有程序的SessionID,根据它来“找回”其应有的Session。 详细说明文档: ...
- session key 加入kod_前缀 避免和其他系统key冲突 - 编辑器选中优化 选择鼠标到窗口外事件处理 ####fix bug:(bug解决和程序优化) - backspace后退截获浏览器事件,作为后退前一次访问的文件夹; - 搜索首字母...
32、修复 开启“关闭session机制”后,论坛验证码即使正确也会弹出错误提示 33、修复 并发任务可能产生的刷分问题 34、防止并发评分与道具的接口产生的刷分等问题 35、【轻量级 PR】:修复 HTTPS下二维码不显示BUG ...