HttpApplication对象
以前虽然也经常用到HttpModule。但是对里面的HttpApplication不算很理解。
以前的理解如下:
HttpApplication是当前网站对象,多个用户可以同时使用这个对象,这个对象在整个网站中是唯一的,类似Application(对于这个理解总觉得有点问题,因为多个用户同时操作同一个对象岂不是有同步问题?)。
最近在看ASP.NET本质论,发现以前的理解有问题:
HttpApplication不应该理解成当前网站对象,而是应该理解成当前用户的一次会话级别的对象,也就是说他的机制应该和SESSION和COOKIE一样,当打开游览器访问网站就会生成一个HttpApplication对象,之后访问这个网站的其他页面时,就直接复用这个对象,不用再次去生成HttpApplication对象,一旦关闭游览器,网站进过一段时间发现这个HttpApplication对象已经不是活动状态后,就会把这个HttpApplication对象从HttpApplicationFactroy管理的HttpApplication对象集合中移除。当网站在某一时刻有100个人在访问,那么HttpApplicationFactroy就管理着100个处于活动状态的HttpApplication对象和若干个非活动状态的HttpApplication对象?可以这样理解吗?