快速业务通道

什么是会话ID和如何使用会话ID

作者 佚名技术 来源 ASP编程 浏览 发布时间 2012-03-12
okie或禁用cookie浏览器的客户提供了会话状态坚持。考虑到利用cookie跟踪客户信息的举动,我们有理由对无Cookie模式保持高度的关注。

如何使用会话ID

客户每发出一个请求,包含加密会话ID的cookie在存在的情况下即被发送给服务器。服务器随后确定cookie所关联的会话ID并恢复关联该客户的所有会话变量。如果cookie不存在就会生成一个新的会话ID,同时加密的会话ID cookie则被发送给客户机。这样就能让ASP跟踪访问网站的单个客户了。同时,以上机制还促使ASP建立服务器方会话变量同单一会话的关联关系。会话变量则被划分为两种类型:

内容集合

静态对象(StaticObject)集合

ASP和ASP.NET下的内容集合(Contents Collection)会话变量都根据会话ID关联特定的客户。这些变量其实就是一个联合数组,类似于Visual Basic的集合(Collection)对象。会话变量的原理完全一样;唯一的本质差别是它们同一个特定会话相联系。而集合对象则可以通过唯一键保存和检索任何类型的数组成员。

静态对象(StaticObject)集合包含了会话范围内、用GLOBAL.ASA的<OBJECT>标签添加到应用程序中所有对象。同内容集合一样,StaticObject集合也是一个联合数组,其访问方式也相同。不过,StaticObject集合仅仅包含了用<OBJECT>实例化的对象而并不包含那些用Server.CreateObject方法实例化的对象。

一个客户就只有一个会话ID吗

对单一Web服务器而言,维护状态在任何情况下都是自动的。客户能得到而且只能得到唯一的一个会话ID,而且,只要网站上客户保持在活动状态,会话信息就会受到服务器的维持。然而,如果Web服务器超过一个,或者单独的应用程序位于某一虚拟目录下而该目录又驻留在其他应用程序的虚拟目录下时,维持状态就变得更复杂了。

在分配会话ID时,每个服务器都是独立进行操作的。因为这一缘故,Web服务器A就并不知道Web服务器B已经把会话ID 706616434分配给了某一客户。因此,如果Web服务器A收到具有会话ID 706616434的客户请求,这一请求会被当作会话超时进行处理,Web服务器A随即分配一个新的会话ID。在发生这种情况时,客户在Web服务器B上就失去了自己的状态,而且在可能发生重复操作的情况下必须从头开始。避免出现这一问题方法之一就是保证客户的所有请求都被发送给了同一服务器。

在虚拟目录下运行应用程序是实现同一Web服务器上隔离运行多个应用程序的方法之一。但是你得记住,当某一个应用程序调用另一应用程序时就会产生新的会话ID。这样就会丢弃

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号