session和cookie有什么关系?为什么客户端禁用cookie会引起session失效?

wangchao813 2009-05-07 11:06:42
session和cookie有什么关系?为什么客户端禁用cookie会引起session失效?
我查了下资料,大部分都是asp的讲解,asp.net也存在此问题么?
...全文
1529 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
lipengfei1103 2011-10-13
  • 打赏
  • 举报
回复
cookie就是存放session的 识别ID : sessionid, 常用方法是存放在cookie里面,如果cookie禁用后,只要想办法把sessionid传到服务器就OK了, 可以使用隐藏表单或者GET方式都可以的 不一定失效
技术传播 2009-11-12
  • 打赏
  • 举报
回复
理解session与cookie可以这样来理解
如果使用session的话
其实相当于服务器更准确的讲应该是webserver.将保存key-value 格式的数据。你可以想像成一个小型的键值数据库。比如说session("name")="zhangsan"
其实就是一对key-value
而这个记录也有其索引ID号。这个就是sessionid值。而这个值是保存在哪呢?
你可以这样理解webserver ---- client 之间的联系 这总得要有一个东西作为依据吧。而这个就是sessionid
这个值其实我个人感觉应该是客户端保存一份 服务端也会有一份的。很多资料都说只放在客户端的COOKIE里面
或通过URL的方式传递。那如果服务端没有的话请问客户端的东西如果验证?
所以我个人觉得应该是有两份。
客户端的将sessionid传过去之后就可以拿到其相应的KEY-VALUE值了。如果有多个则就取出来多个

当然不同的webserver其相应的SESSION机制也会有所不同。这个可以查阅相关这方面的资料
wangchao813 2009-05-08
  • 打赏
  • 举报
回复
up
Adechen 2009-05-07
  • 打赏
  • 举报
回复
我是路过的,看了高手的讲解,获益匪浅
SimonYeung 2009-05-07
  • 打赏
  • 举报
回复
简单说
Session id是用cookies传到服务器的
禁用以后就传不过去了
hechenqingtian 2009-05-07
  • 打赏
  • 举报
回复

Session 就是服务端和客户端之间状态保存的一种方式,称为会话。客户端和服务器每建立一个连接就会产生一个会话,而为了标识不同客户端与服务器之间的会话于是就有了了Session 唯一ID ,每个会话ID是唯一的。服务器在请求时会把这个ID发送到客户端,保存在Cookie 当中,儿再次请求时又将Cookie中的ID 发送到服务器,确保会话唯一
wuyq11 2009-05-07
  • 打赏
  • 举报
回复
bwangel 2009-05-07
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 chenyumu218 的回复:]
session的本质就是cookies
[/Quote]

此言差矣
zhulong1111 2009-05-07
  • 打赏
  • 举报
回复
session里用到了cookie机制 啊
  • 打赏
  • 举报
回复
禁用cookie
或application
一弗楚 2009-05-07
  • 打赏
  • 举报
回复
学习
中年秃头大叔 2009-05-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 HDNGO 的回复:]
session机制采用的是一种在客户端与服务器之间保持状态的解决方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识,所以session机制可能需要借助于cookie机制来达到保存标识的目的。而session提供了方便管理全局变量的方式
session是针对每一个用户的,变量的值保存在服务器上,用一个sessionID来区分是哪个用户session变量,这个值是通过用户的浏览器在访问的时候返回给服务器,当客户禁用cookie…
[/Quote]
mark
qtlhn 2009-05-07
  • 打赏
  • 举报
回复
up
guoziwumingzi 2009-05-07
  • 打赏
  • 举报
回复
Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。
wangchao813 2009-05-07
  • 打赏
  • 举报
回复
我是不是可以这样理解,session是标记在cookie中的,如果在没有设置config文件的情况下,客户端禁用cookie的时候会导致session失效,但是在设置了config后就可以正常运行,这是为什么呢?请赐教。。。谢谢
wujinjian2008n 2009-05-07
  • 打赏
  • 举报
回复
1楼
沉序员 2009-05-07
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 xymoxin 的回复:]
引用 1 楼 hdt 的回复:
因为默认情况下,session需要用cookie标示
也就是说 session 会根据一个叫sessionid的cookie确定
如果禁用了cookie ,你可以在 web.config里把
<sessionstate cookieless=“true”//

正解
[/Quote]

對頭,小弟學習了
xymoxin 2009-05-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hdt 的回复:]
因为默认情况下,session需要用cookie标示
也就是说 session 会根据一个叫sessionid的cookie确定
如果禁用了cookie ,你可以在 web.config里把
<sessionstate cookieless=“true”//
[/Quote]
正解
gyouyang 2009-05-07
  • 打赏
  • 举报
回复
学习
tzs2304 2009-05-07
  • 打赏
  • 举报
回复
up
加载更多回复(25)

62,053

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧