asp.net Session的原理

以前只知道session 是存在cookie 的,具体是怎么回事 也说不清楚,面试有被问到了,所以 真的要好好的研究一下

原理这位大哥介绍的清楚了

http://blog.csdn.net/wangzhkai/article/details/4187496

做一个简单概括吧

cookie的两种类别

一种是会话性质的cookie,存放在浏览器内存中,当你在用代码向客户端写入cookie的时候,如果没有指定过期时间,那么cookie是存放在浏览器的内存里面的,不会持久化在硬盘上,也就是你在浏览器的临时文件里找不到!
一种是持久化的cookie,存放在硬盘上,当你指定了cookie的过期时间,那么,在客户端写入cookie的时候就会在浏览器的临时文件下生成一个文件,具体格式和名字可以到浏览器临时文件去看

session

session的实现是web服务器的事情,不过很显然是利用会话cookie,也就是存放在浏览器内存里的那种cookie来实现的,在cookie里只是存放了SessionID,然后在服务器上建立了一张表,对应客户端的SessionID。这张表是存放在服务器上的进程中的,也就是服务器的内存里,也就是Application里。当客户端请求服务器的时候,如果服务器发现这是一个新的请求,就会分配给他一个SessionID,也就是在浏览器写入一个sessionID的cookie。你可以试一下,在你请求过一次服务器之后,在服务器遍历客户端所有的cookie,就会发现这个叫做SessionID的cookie。

那我们验证一下看是不是这样的

建设一个普通的Web 应用程序

我们看一下SessionId 的值

在客户端的Cookie 没找到 ,按第一种Cookie形式 存储的

在服务器端看一下所有的Cookie值

 

发现有一个Asp.NET_SessionId 的 键  那我们看一下它里面的值是多少

 

找到了这个值  和SeesionID 是一样的  soga   这样就证明了的确是在cookie里只是存放了SessionID,然后在服务器上建立了一张表,对应客户端的SessionID。

这样基本上就清楚了 

转载于:https://www.cnblogs.com/hzy168/archive/2013/04/04/2999231.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值