目录:
一、术语
二、 协议与状态保持
三、理解 机制
四、理解 机制
五、理解
六、 常见问题
七、跨应用程序的 共享
八、总结
一、术语
在我的经验里, 这个词被滥用的程度大概仅次于 ,更加有趣的是
与 在某些语境下的含义是相同的。
, 中文经常翻译为会话,其本来的含义是指有始有终的一系列动作消息,比如打
电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个 。有时候
我们可以看到这样的话“在一个浏览器会话期间,,这里的会话一词用的就是其本义,
是指从一个浏览器窗口打开到关闭这个期间 ①。最混乱的是“用户(客户端)在一次会话
期间”这样一句话,它可能指用户的一系列动作(一般情况下是同某个具体目的相关的一系
列动作,比如从登录到选购 商品到结账登出这样一个网上购物的过程,有时候也被称为一
个 ),然而有时候也可能仅仅是指一次连接,也有可能是指含义 ①,其中的
差 别只能靠上下文来推断②。
然而当 一词与网络协议相关联时,它又往往隐含了“面向连接”和或“保持状态”这
样两个含义,“面向连接”指的是在通信双方在通信之前要先建立一个通信的渠道,比如打
电话,直到对方接了电话通信才能开始,与此相对的是 写信,在你把信发出去的时候你并
不能确认对方的地址是否正确,通信渠道不一定能建立,但对发信人来说,通信已经开始
了。“保持状态”则是指通信的一方能够 把一系列的消息关联起来,使得消息之间可以互相
依赖,比如一个服务员能够认出再次光临的老顾客并且记得上次这个顾客还欠店里一块钱
这一类的例子有“一个 或者“一个 。
而到了 服务器蓬勃发展的时代, 在 开发语境下的语义又有了新的扩展,
它的含义是指一类用来在客户端与服务器之间保持状态的解决方案④。 有时候 也
用来指这种解决方案的存储结构,如“把 保存在 里”⑤。由于各种用于 开
发的语言在一定程度上都提供了对这 种解决方案的支持,所以在某种特定语言的语境下 ,
也 被 用 来 指 代 该 语 言 的 解 决 方 案 , 比 如 经 常 把 里 提 供 的
简称为 。
鉴于这种混乱已不可改变,本文中 一词的运用也会根据上下文有不同的含义,请
大家注意分辨。
在本文中,使用中文“浏览器会话期间”来表达含义①,使用“ 机制”来表达含义④,
使用“表达含义⑤,使用具体的“来表达含义⑥
二、 协议与状态保持
协议本身是无状态的,这与 协议本来的目的是相符的,客户端只需要简单的
向服务器请求下载某些文件,无论是客户端还是服务器都没有必要纪录 彼此过去的行为,
每一次请求之间都是独立的,好比一个顾客和一个自动售货机或者一个普通的(非会员
制)大卖场之间的关系一样。
然而聪明(或者贪心?)的人们很快发现如果能够提供一些按需生成的动态信息会使
变得更加有用,就像给有线电视加上点播功能一样。这种需求一方 面迫使 !" 逐步添加