中国龙,中国风,中国会变得更加强大!
力量越大,责任越大!
人的一生,会面临很多选择,但决定一个人一生的,往往就是最关键那么的一两步
Session对象的原理
上一篇 /
下一篇 2008-12-09 17:14:10
/ 个人分类:开发知识
就Session的实现而言,好像是这样的:
(1)当有Session启动时,服务器生成一个唯一值,称为SessionID(好像是通过取进程ID的方式取得的)。
(2)然后,服务器开辟一块内存,对应于该SessionID。
(3)服务器再将该SessionID写入浏览器的cookie。
(4)服务器内有一进程,监视所有Session的活动状况,如果有Session超时或是主动关闭,服务器就释放改内存块。
(5)当浏览器连入IIS时并请求的ASP内用到Session时,IIS就读浏览器Cookie中的SessionID。
(6)然后,服务检查该SessionID所对应的内存是否有效。
(7)如果有效,就读出内存中的值。
(8)如果无效,就建立新的Session。
注意:
(1)在大浏览量的网站,Session并不安全保险,我们过去的网站就经常碰到存在Session中得值不正确(可能出现重复的SessionID)。
(2)SessionID不能从硬盘上的Cookie文件获得,如果想在客户端获知自己的SessionID,只能通过Javascrīpt来读取。
这里用一个形象的比喻来解释session的工作方式。假设Web Server是一个商场的存包处,HTTP Request是一个顾客,第一次来到存包处,管理员把顾客的物品存放在某一个柜子里面(这个柜子就相当于Session),然后把一个号码牌交给这个顾客,作为取包凭证(这个号码牌就是Session ID)。顾客(HTTP Request)下一次来的时候,就要把号码牌(Session ID)交给存包处(Web Server)的管理员。管理员根据号码牌(Session ID)找到相应的柜子(Session),根据顾客(HTTP Request)的请求,Web Server可以取出、更换、添加柜子(Session)中的物品,Web Server也可以让顾客(HTTP Request)的号码牌和号码牌对应的柜子(Session)失效。顾客(HTTP Request)的忘性很大,管理员在顾客回去的时候(HTTP Response)都要重新提醒顾客记住自己的号码牌(Session ID)。这样,顾客(HTTP Request)下次来的时候,就又带着号码牌回来了。
相关阅读:
- 什么是Ajax技术 (belie, 2008-4-17)
- 根据页面结构使用描述性编程读取页面中经常变动的内容 ---- 无需依赖对象-1 (qicyt1812, 2008-7-09)
- 根据页面结构使用描述性编程读取页面中经常变动的内容 ---- 无需依赖对象-2 (qicyt1812, 2008-7-09)
- 一个简单的EJB-Session Bean实例 (51testing, 2008-7-16)
- 一篇关于session的好文章,写的很详细(转载) (lisilin, 2008-9-03)
- 转贴:安全测试学习笔记一(Cookie&Session) (fengyun32, 2008-9-12)
- (转)Java学习从入门到精通 (belie, 2008-9-19)
- 认识session (51testing, 2008-10-12)
- session与cookies(转载) (超越自我, 2008-10-16)
- Cookie PK Session 服务端和客户端 (转贴) (超越自我, 2008-12-06)
收藏
举报
TAG:
session
对象
开发知识