zoukankan
html css js c++ java
关于Cookie与Session的疑问解答
1、会话cookie
如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,
只要关闭浏览器窗口,cookie就消失了
。这种生命期为浏览会话期的cookie被称为
会话cookie
。会话cookie一般不保存在硬盘上而是保存在内存里。
如果设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。
存储在硬盘上的cookie可以在不同的浏览器进程间共享,比如两个IE窗口。而对于保存在内存的cookie,不同的浏览器有不同的处理方式。
2、关于SeesionID与Session的生命周期
当你第一次访问一个网站的时候,网站服务器会在响应头内加上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的效果,持久会话实现不了.
查看全文
相关阅读:
Win7 usb无法识别,感叹号,没有盘符
MVMM 中的ViewModel 实现IsLoading进度条
菜鸟喜欢的C# 入门认识和添加,修改,删除 文件夹 文件 大全(转)
(转)windows负载平衡
关于刷新页面和用法.(转)
bat文件调用dos命令 (dos淘金)
flash新闻轮转:图片和链接从数据库读取之我见
dling 624+and 2100ap && wireless card&wifi
html与css小技巧
小型系统数据库安全小结
原文地址:https://www.cnblogs.com/smallstone/p/1773803.html
最新文章
匈牙利算法(转)
hdu 1372 & poj 2243(bfs)
几种版本控制工具的比较
Windows Server 2008 R2 x64fre Download.
64位系统深入剖析:不仅是内存这么简单
栈溢出 详解 Smashing The Stack For Fun And Profit
AMD与Intel CPU的区别
用 WinImage 制作 大IMG软盘镜像
Understanding roles in SQL Server security
Running 32bit apps in x64 Windows: Registry redirection
热门文章
Xbuntu升级到9.04后出现鼠标和共享文件夹问题.
揭穿关于云计算的九大谎言
如何在异步加载的数据处理中使用Linq
How to build a K2 SharePoint Workflow
SharePoint 2010 新功能:文档集(Document Set)
使用sql server 2008出现 丢失MSVCR100_CLR0400.DLL的问题解决方法
Jquery控件checkboxlist 实例,解决前台操作服务器控件的困难
c#值类型和引用类型
Silverlight 在MVVM模式下使用TreeView
Whitespace is not allowed after end of Markup Extension. 标记扩展符号末尾不允许有空格
Copyright © 2011-2022 走看看