cookie和session
来源:互联网 发布:js click 编辑:程序博客网 时间:2024/06/06 20:43
cookie默认的生命中期为一次浏览器会话期间,只要关闭浏览器窗口,cookie就消失了。这种生命期为浏览会话期的cookie被称为会话cookie。会话cookie一般不保存在硬盘上而是保存在内存里。存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口(相同浏览器间)。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
session保存在服务器,而sessionId通过Cookie发送给客户端,但这个Cookie的生命不-1,即只在浏览器内存中存在,也就是说如果用户关闭了浏览器,那么这个Cookie就丢失了。
当用户再次打开浏览器访问服务器时,就不会有sessionId发送给服务器,那么服务器会认为你没有session,所以服务器会创建一个session,并在响应中把sessionId中到Cookie中发送给客户端。
你可能会说,那原来的session对象会怎样?当一个session长时间没人使用的话,服务器会把session删除了!这个时长在Tomcat中配置是30分钟,可以在${CATALANA}/conf/web.xml找到这个配置,当然你也可以在自己的web.xml中覆盖这个配置!
web.xml
<session-config>
<session-timeout>30</session-timeout>
</session-config>
session失效时间也说明一个问题!如果你打开网站的一个页面开始长时间不动,超出了30分钟后,再去点击链接或提交表单时你会发现,你的session已经丢失了!
案例分析:
登录网站点击记住用户名和密码选项。此时用户名和密码就默认存储到了session中。
如果cookie默认不设置过期时间cookie的生命周期就是一次会话,浏览器不关闭cookie就一直存在,当关闭浏览器时,携带有sessionID的cookie自动销毁。session的过期时间默认情况下是30分钟(可手动更改)。
情况一:倘若30分钟之内浏览器关闭了,携带有sessionID的cookie自动销毁了,但是此时session还没有销毁,因为session保存在服务期内。重新打开浏览器请求原页面,服务器中的session仍然用以前的sessionID重新创建一个cookie并把sessionID绑定到新创建的cookie上发送给客户端。
情况二我预测不成立!如有知道的请留言说明:
情况二:已经超过30分钟,浏览器没动。但此时session已经自动销毁,当未关闭的浏览器再次访问原链接页面时,绑定sessionID的cookie又会重新去服务器中找对应的session,而此时由于原session已经销毁。服务器就会根据cookie携带的sessionID重新创建一个和以前一样的session,原有的登录信息依然保留。
- session和cookie
- Cookie和Session专题
- Cookie和Session专题
- Cookie和Session专题
- Cookie和Session专题
- 关于Session和Cookie
- Cookie和Session专题
- session 和 cookie
- Cookie和Session专题
- cookie和session
- 浅谈Session和Cookie
- Cookie和Session专题
- Cookie和Session专题
- Cookie和Session专题
- Cookie和Session专题
- Cookie和Session专题
- Cookie和session
- cookie和session关系
- OSI 七层模型和 TCP/IP 协议比较
- Unity脚本生命周期(一)
- CS和BS
- iOS --- 怎么样自学好iOS心得
- Array(9) -- Container With Most Water,Insert Delete GetRandom O(1) I, II
- cookie和session
- 《程序员面试代码指南》之栈和队列中的套路
- C语言文件操作
- Linux操作系统初探(一)
- Spring boot参考指南
- init.rc中的函数分析
- 【其他】解决ubuntu与win7双系统耳机没有声音的问题
- Ufldl Exercise:Convolution and Pooling
- Unity脚本的生命周期(二)- 转载