`
crud0906
  • 浏览: 134750 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

关闭浏览器session就消失了吗?

    博客分类:
  • WEB
阅读更多
以前一直以为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
分享到:
评论
2 楼 hanxianglu 2016-12-12  
精辟
1 楼 binyan17 2012-02-01  
“cookie就是一直保存在客户端的会话信息,而session是保存在服务器断的会话信息”这个理解是对的。在Cookie中保存的JSESSIONID或PHPSESSIONID只是一个key,传递给服务器以标识是哪个会话,具体的SESSION内容还是保存在服务器上的。而COOKIE则是把所有的字段都以KEY-VALUE的形式保存在浏览器中。

相关推荐

    浏览器关闭使session失效的问题多种解决方式

    直接关闭浏览器(或者强制关闭浏览器进程、死机等),服务器无法处理用户退出网站的请求,此举将会导致session失效,下面整理了一些解决方法,感兴趣的朋友可以参考下哈

    asp.net session对象的持久化

    众所周知,Session对象的生命周期关闭浏览器之后就会销毁,那该如何持久化的保存Session对象的数据呢?(ps:将session对象的值保存到数据库当中就可以了)使用SQL Server数据库保存Session session对象案例 记住...

    ASP.NET 解决session数据丢失的问题

    在我的上篇博客中提到,可以改变session的生命周期(即使关闭了浏览器session数据也在),但是经过我的测试,关闭电脑或者重启电脑后,session的生命周期也会消失,即使你设置了timeout,也是一样的。这就让我很是...

    关于session在PHP5的配置文件中的详细设置参数说明

    ;处理session存取的模式(预设:files) session.save_handler = files ;session档案存放路径(预设:/tmp) session.save_path = /tmp ;...session使用cookie的生存期,以秒为单位(预设:随浏览器关闭而消失 0) sess

    Java中设置session超时(失效)的三种方法

    session的作用:request.getSession()可以帮你得到HttpSession类型的对象,通常称之为session对象,session对象的作用域为一次会话,通常浏览器不关闭,保存的值就不会消失,web.xml中有一个session time out的地方,...

    新手菜鸟必读:session与cookie的区别

    session是基于访问的进程,记录了一个访问的开始到结束,当浏览器或进程关闭之后,session也就“消失”了,而cookie更多地被用于标识用户,它可以是长久的,用于用户跟踪和识别唯一用户(Unique Visi

    带你了解session和cookie作用原理区别和用法

     如果不设置 过期时间,则表示这个 Cookie生命周期为 浏览器会话期间 , 只要关闭浏览器,cookie就消失了.  这个生命期为浏览会话期的cookie,就是会话Cookie; 存储:   一般保存在内存,不在硬盘;  如果设置了过期...

    详解PHP中cookie和session的区别及cookie和session用法小结

    若设置了生命周期则相反,不随浏览器的关闭而消失,这些cookie仍然有效直到超过设定的过 期 时间。 session 一种类似散列表的形式保存信息, 当程序需要为某个客户端的请求创建一个session时,服务器首先检查这个...

    Django 实现购物车功能的示例代码

    购物车思路:使用 session 功能识别不同浏览器用户,使得用户不管是否登录了网站,均能够把想要购买...在 settings.py 文件中加入下列语句,表示要求在浏览器一关闭的时候 session 就会失效。 SESSION_EXPIRE_AT_BROWS

    基于SSM框架+mysql,采用分布式架构的移动电子商城项目源码+项目说明.zip

    不能存在session,生命周期短,浏览器关闭浏览器数据消失 1. 数据库 可以的 优点:安全,存储量不受限制 缺点:存储在数据库中必须登录 2. 使用浏览器的cookie来存储购物车 优点:不用登录,因为数据存储在...

    通过js获取PHP设置的cookie(全实例讲解)

    session虽然可以实现跳过登陆验证,但是它是临时的,关闭页面后或者关闭浏览器之后,它就会消失,我觉得不是很方便。 学习链接:https://www.runoob.com/php/php-sessions.html 后来我试过一种方法就是就是给数据表...

    HTML5 使用 sessionStorage 进行页面传值的方法

    HTML5 提供的本地存储功能,使得...2. sessionStorage: 针对一个session的数据存储,该tab关掉就会消失。 目前大部分浏览器都已经很好地支持了 HTML5 ,但了为安全,使用前还是应该做客户端检测: if (typeof(Storage)

    jsp九大内置对象

    同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到客户端,存放在Cookie中,这样Session对象,直到客户关闭浏览器后,服务器端该客户的Session对象才取消,并且和客户的会话对应关系消失。当客户重新...

    基于js 本地存储(详解)

    在客户端运行的JS是不能操作用户电脑磁盘中的文件的(保护客户端运行的安全) 1、JS中的本地存储: 使用JS向浏览器的某一个...sessionStorage:信息的会话存储,会话窗口存在信息也存在,会话窗口关闭信息就消失了 2、C

    HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用

    sessionStorage(会话存储),只有在浏览器被关闭之前使用,创建另一个页面时同意可以使用,关闭浏览器之后数据就会消失。 某个博主的测试localStorage兼容情况,如下:Chrome4+ 开始支持localStorage Firefox3.5+...

    商用版本文本编辑器DotNetTextBoxV6.0.8Source 源码

    3)修正控件段落格式及选择字体的下拉列表功能会使页面其它Select选择框消失的BUG! 4)修正去掉下拉列表功能后,控件无法正常使用的BUG! 5)修正商业版采用Asp.Net Ajax支持方式编译后出现的一些BUG! 6)修正FIREFOX2.0下...

    PHP操作Memcache实例介绍

    b/s: 基于浏览器和服务器架构 web程序 c/s: QQ SVN client客户端+ 服务器简单的基于文本行的协议: redis memcache 区别: 都是存储数据的,memcache直接保存到内存中,redis 保存到内存中,关闭之后保存到硬盘中,...

    大名鼎鼎SWFUpload- Flash+JS 上传

     □ 这是因为SWFUpload在上传时相当于重新开辟了一个新的Session进程,因此无法与原有程序的Session保持一致,这就需要在上传时传递原有程序的SessionID,根据它来“找回”其应有的Session。 详细说明文档: ...

    KODExplorer 芒果云-资源管理器

    - session key 加入kod_前缀 避免和其他系统key冲突 - 编辑器选中优化 选择鼠标到窗口外事件处理 ####fix bug:(bug解决和程序优化) - backspace后退截获浏览器事件,作为后退前一次访问的文件夹; - 搜索首字母...

    Discuz! X3.4 简体中文-PHP

    32、修复 开启“关闭session机制”后,论坛验证码即使正确也会弹出错误提示 33、修复 并发任务可能产生的刷分问题 34、防止并发评分与道具的接口产生的刷分等问题 35、【轻量级 PR】:修复 HTTPS下二维码不显示BUG ...

Global site tag (gtag.js) - Google Analytics