Session,Cache,Application同样处于应用程序域的HTTPContext对象下.
为什么Session在客户端是独立的,Cache和Application在客户端是共享的,忘高手能解释一下?Application继承自HttpApplicationState实现了NameObjectCollectionBase.
Session继承自HttpSessionState实现了ICollection, IEnumerable
Cache继承自Cache实现了IEnumerable
为什么Session在客户端是独立的,Cache和Application在客户端是共享的,忘高手能解释一下?Application继承自HttpApplicationState实现了NameObjectCollectionBase.
Session继承自HttpSessionState实现了ICollection, IEnumerable
Cache继承自Cache实现了IEnumerable
解决方案 »
- linq to entities连接数据库时只能用sqlserver数据库吗?
- div三栏布局,在ie8标准文本模式下怎么写呀!
- 判断用户名是否重复 asp.net access
- 如何让DataList做连续滚动!
- 菜鸟问题:怎样在后台调用table的Cssclass
- 悬赏100分 老师布置的ASP.NET题目 应该不难 斑竹和大家都来看看
- 下拉框默认值?????
- asp.net 用户控件ID 此名称包含大写字母,而名称中不允许使用大写字母问题
- 为什么我定义的数组既不能显示,也不能绑定到下拉框呢?
- .net对上传文件大小有限制?
- 新手遇到概念理解不清
- 在ASP中怎样用TreeView来进行分类
就象鱼为什么要生活水里,你能解释吗?
简单来说
loop1: 用户请求->服务器得不到客户端发来的session id->Session ID在服务器端创建并存储(随即数字)->把session id "发"给客户端(两种方式,cookieless or not)-> cookieless的话客户端通过url传递session ID, 不是的话session id存储在in memory 的 cookie里,不同browser process会有不同的session id。
同一用户在同一process的browser下发第二次请求->服务器得到客户端传来的session id->查看存储在服务器上的session id,发现存在->确认是前一用户。另一用户发送请求-> goto loop1Cache和Application,简单来说可以认为是static变量,数据在ASP.NET进程内共享,所以跟用户没关系。复杂来说就说来话长了,包括他们的不同点等等。
Session:是用来 支持客户端连接的,所以每一个连接 都有一个;
Cache : 是为了做缓存, 缓存 当然是 大家都能访问最好Application: 就是你这个网站 应用,仅此一个,访问他 ,就是和他交互;
Cache : 全局,有过期时间,任何用户都能调用
Application:全局,生命周期是iis的一次启动
Application 任意大小 整个应用程序的生命周期 所有用户服务器段
Session 小量,简单的数据 用户活动时间+一般延迟时间(一般为20分钟) 单个用户 服务器段
Cookie 小量,简单的数据 可以根据需要设定 单个用户 客户端