上一页下一页

了解阶段变量

Web 服务器(或者更准确地说,HTTP 协议)是无状态的,即它们不跟踪连接到它们的浏览器,也不跟踪用户的各个页面请求。Web 服务器每次接收对网页的请求,并通过向用户的浏览器发送相关页面做出响应后,Web 服务器都会“忘记”进行请求的浏览器和它发送出去的网页。当同一用户稍后请求一个相关页时,Web 服务器会发送该页,而并不知道它发给该用户的上一页是什么。

HTTP 的无状态本性使它成为一种简单而易于实现的协议,因此也使得越高级的 Web 应用程序(如个性化所生成的内容)越难实现。例如,为了给单个用户自定义站点内容,必须首先标识出该用户。许多 Web 站点使用一些用户名/密码登录表单来实现此目的。如果需要显示多个自定义的页面,则必需一种跟踪登录用户的机制,因为多数用户将不能接受为站点的每一页都提供其用户名/密码。

为了能够创建复杂的 Web 应用程序和在所有站点页间存储用户提供的数据,许多应用程序服务器技术都包括对“会话管理”的支持。会话管理使 Web 应用程序能够在多个 HTTP 请求之间维护状态,使用户对网页的请求在给定时间段内可视作同一交互会话的一部分。

阶段变量存储着用户的会话生命周期的信息。当用户第一次打开应用程序中的某一页时,用户会话开始。当用户一段时间内不再打开该应用程序中的其他页时,或者用户明确终止该会话时(通常是通过单击“注销”链接),会话结束。在会话存在期间,会话特定于单个用户,每个用户都有单独的会话。

阶段变量用于存储 Web 应用程序中每页都能访问的信息。信息可以多种多样,如用户名称、首选字体大小,或者是指示用户是否成功登录的标记等。阶段变量的另一个常见用途是保存连续分数,比如在网上测验中到目前为止用户答对的题数,或者到目前为止,用户从网上目录中选择的产品。

请注意,阶段变量只有在用户的浏览器配置成接受 Cookie 时才起作用。当首次对会话进行初始化时,服务器创建一个唯一标识该用户的会话 ID 号,然后将包含该 ID 号的 Cookie 发送到用户的浏览器。当用户请求服务器上的另一页时,服务器会读取浏览器中的 Cookie 以识别该用户并检索存储在服务器内存中的该用户的阶段变量。


  上一页下一页