📄 16-2-5.cfm.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Session是怎样工作的</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<b><font FACE="宋体">
<p ALIGN="JUSTIFY">Session</font>是怎样工作的?</p>
</b><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Session</font><font SIZE="3">其实是利用</font><font FACE="宋体"
SIZE="3">Cookie</font><font SIZE="3">进行信息处理的,(参见后面有关</font><font
FACE="宋体" SIZE="3">Cookies</font><font SIZE="3">的介绍),当用户首先进行了请求后,服务端就在用户浏览器上创建了一个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">,当这个</font><font FACE="宋体"
SIZE="3">Session</font><font SIZE="3">结束时,其实就是意味着这个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">就过期了。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">为这个用户创建的</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">的名称是</font><font FACE="宋体"
SIZE="3">ASPSESSIONID</font><font SIZE="3">。这个</font><font FACE="宋体" SIZE="3">Cookie</font><font
SIZE="3">的唯一目的就是为每一个用户提供不同的身份认证。</p>
<b>
<p ALIGN="JUSTIFY">注意</font><font FACE="宋体" SIZE="3"> </p>
</b>
<p ALIGN="JUSTIFY"></font><font SIZE="3">如果你对名字是</font><font FACE="宋体"
SIZE="3">ASPSESSIONID</font><font SIZE="3">的</font><font FACE="宋体" SIZE="3">COOKIE</font><font
SIZE="3">感到好奇,你可以利用</font><font FACE="宋体" SIZE="3">ServerVariables</font><font
SIZE="3">集合的</font><font FACE="宋体" SIZE="3">COOKIE Header</font><font SIZE="3">来接受这个信息,参看下面这个脚本:</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><%=Request.ServerVariables(</font><font SIZE="3">“</font><font
FACE="宋体" SIZE="3">HTTP COOKIE</font><font SIZE="3">”</font><font FACE="宋体"
SIZE="3">) %></p>
<p ALIGN="JUSTIFY"></font><font SIZE="3">你可以刷新不止一次而显示结果依然不变。如果希望对</font><font
FACE="宋体" SIZE="3">ServerVariables</font><font SIZE="3">集合有更多了解,那么请去看第</font><font
FACE="宋体" SIZE="3">14</font><font SIZE="3">章。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY">Session</font><font SIZE="3">变量自己不会存在用户浏览器上。不过,</font><font
FACE="宋体" SIZE="3">ASPSESSIONID</font><font SIZE="3">这个</font><font FACE="宋体"
SIZE="3">cookie</font><font SIZE="3">需要使用</font><font FACE="宋体" SIZE="3">session</font><font
SIZE="3">变量。</font><font FACE="宋体" SIZE="3">server</font><font SIZE="3">使用</font><font
FACE="宋体" SIZE="3">ASPSESSIONID cookie</font><font SIZE="3">来将特定的用户和特定的</font><font
FACE="宋体" SIZE="3">session</font><font SIZE="3">信息联系起来。没有</font><font
FACE="宋体" SIZE="3">cookie</font><font SIZE="3">的话,</font><font FACE="宋体"
SIZE="3">Server</font><font SIZE="3">就不会了解到每一个特定用户在网站中移动的信息。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">利用</font><font FACE="宋体" SIZE="3">SessionID</font><font
SIZE="3">变量存储</font><font FACE="宋体" SIZE="3">ASPSESSIONID cookie</font><font
SIZE="3">和直接对名为</font><font FACE="宋体" SIZE="3">ASPSESSIONID</font><font
SIZE="3">的</font><font FACE="宋体" SIZE="3">cookie</font><font SIZE="3">赋值有很大不同。微软利用了一个复杂的数学算法对</font><font
FACE="宋体" SIZE="3">SessionID</font><font SIZE="3">进行了加密措施,以防止黑客猜测出</font><font
FACE="宋体" SIZE="3">SessionID</font><font SIZE="3">的值并且依据这个获得不该获得的身份或权限。</p>
<b>
<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">你可以用两种方法屏蔽掉</font><font
FACE="宋体" SIZE="3">SessionID</font><font SIZE="3">,一种是将全站进行屏蔽,另外一种是将一个单独</font><font
FACE="宋体" SIZE="3">Active Server Page</font><font SIZE="3">进行相应屏蔽。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">如果想要将整个站点的</font><font
FACE="宋体" SIZE="3">Session</font><font SIZE="3">操作进行屏蔽,你可以使用</font><font
FACE="宋体" SIZE="3">Internet Service Manager</font><font SIZE="3">。从</font><font
FACE="宋体" SIZE="3">Application</font><font SIZE="3">设置对话框,点击</font><font
FACE="宋体" SIZE="3">Active Server Pages</font><font SIZE="3">表并且取消对</font><font
FACE="宋体" SIZE="3">Enable Session State</font><font SIZE="3">选项的选择。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">你还可以在特定的</font><font
FACE="宋体" SIZE="3">Active Server Page</font><font SIZE="3">的首行加入使之屏蔽的语句来进行这种操作。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"><% EnableSessionState=False %></p>
</font><font SIZE="3">
<p ALIGN="JUSTIFY">由于</font><font FACE="宋体" SIZE="3">Session</font><font SIZE="3">对象使用了</font><font
FACE="宋体" SIZE="3">Cookies</font><font SIZE="3">,那么它的兼容性就受到了限制,一些老的浏览器显然是不行的,新的浏览器象是</font><font
FACE="宋体" SIZE="3">NetScape4.0</font><font SIZE="3">也提供了屏蔽</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">的选项。</p>
</font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">这样就出了问题、由于</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">不能适用于所有浏览器,那么在建站时你就必须注意了,如果你的网站定位于大众通用,就必须考虑各种不同的用户情况。不过现在确实有可以替代的方法,有些取代</font><font
FACE="宋体" SIZE="3">Cookies</font><font SIZE="3">来进行身份认证的方法将在后面的章节中进行讨论。</p>
<b>
<p ALIGN="JUSTIFY">注意</p>
</b></font><font FACE="宋体" SIZE="3">
<p ALIGN="JUSTIFY"></font><font SIZE="3">当前浏览器,是否发送一个</font><font
FACE="宋体" SIZE="3">Cookie</font><font SIZE="3">在</font><font FACE="宋体" SIZE="3">URL</font><font
SIZE="3">是区分大小写的</font><font FACE="宋体" SIZE="3">,</font><font SIZE="3">因此,微软提醒你最好使用同样的大小写方式,例如一起使用</font><font
FACE="宋体" SIZE="3">/WWW/mypage.asp</font><font SIZE="3">和</font><font FACE="宋体"
SIZE="3">/www/mypage.asp</font><font SIZE="3">肯定会使浏览器出错。</p>
</font>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -