永发信息网

关于ASP.NET session问题

答案:1  悬赏:10  手机版
解决时间 2021-01-27 17:34
  • 提问者网友:愿为果
  • 2021-01-27 10:28
今天做了个小测试...我在ASP.NET页面后太累的page_Load 方法里加上一句话 :
Response.Write(Session.SessionID);然后用IE访问这个页面,HTTP请求报文那里没有带上Cookie,并且你刷新页面时候,页面上write出来的sessionID随着你的刷新会改变。。
但是我又做了另外一个小测试,在page_Load方法里面加上
Response.Write(Session.SessionID);
Session["UserName"]="Hello";
退出IE后重新打开IE,结果HTTP请求报文那里会带上cookie 还有即使你刷新页面那个sessionID是不会变化的。。
这里我有几大疑问,恳请大神们帮我解答下,上网找了下没答案:
1、只要服务器配置了使用session,那么是不是对于每一个客户浏览器第一次访问服务器网站的时候,服务器都为其分配一个固定的sessionID,并储存在进程那里呢??但是如果这样,为什么我刷新后,sessionID会改变呢?
2、是不是服务器对次浏览器的session属性做了修改的时候,才为浏览器创建一个固定的sessionID 储存在IIS进程中,然后返回给浏览器呢?即服务器对session作了修改,才为这个浏览器客户创建一个固定的session 。
肯定大神们回答下。。谢谢啊 可能分数不够...
1、每当一个客户请求到来,假若不对session进行改动,服务器都会为其分配一个sessionID并且储存在服务器内存中么??还是当分配了一个固定的session后才将ID储存在服务器中呢?

2、如果按一楼那样说,如果加上Session["UserName"]="Hello";后,会建立一个"持久化"的Session,那么第一次客户访问服务器页面,HTTP请求为什么会带上一个cookie呢?? 因为我看不到第一次服务器的响应报文那里有setCookie节点,那是不是在建立TCP socket连接的时候 三次握手阶段 中某一个阶段捎带sessionID过去给客户端的呢??
最佳答案
  • 五星知识达人网友:煞尾
  • 2021-01-27 11:30
ASP.NET会为每个请求分配一个不固定的SessionID,Session.SessionID
会随着每次请求变动.是存在服务器端的

当你使用了Session["UserName"]="Hello";后,会建立一个"持久化"的Session,一般是和Cookie相关联的.是存储在浏览器端的....
当然也有不依赖于Cookie的Seeion,会在URL上跟一串Session串.....
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯