一、什么是session:[size=medium]
在谈session之前,我们要首先知道,由于HTTP协议本身是无状态的,客户端只需要简单的向服务器请求下载某些文件,无论是客户端还是服务器都没有必要记录彼此过去的行为,每一次请求之间都是独立的,一次请求完成之后两者的连接就会断开。
但是随着对WEB功能要求的不断提高,我们经常需要按需生成一些动态信息,就好比给有线电视添加一些互动点播一样,从而会使WEB的功能更加的人性化。这时候我们就需要一种机制来记录之前一段时间内的服务器和客户机之间的联系。这就是session机制。
有一个比较经典的比方可以帮我们更好的理解session机制:
一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微乎其微,这时就需要某种方式来纪录某位顾客的消费数量。想象一下其实也无外乎下面的几种方案:
1、该店的店员很厉害,能记住每位顾客的消费数量,只要顾客一走进咖啡店,店员就知道该怎么对待了。这种做法就是协议本身支持状态。
2、发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限(在servlet中这个有效期默认是30分钟)。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。
3、发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。
显然,我们常用的session就是在2、3两种方法中任选其一。
二、session机制的实现:
session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。
当程序需要为某个客户端的请求创建一个session的时候,
第一步:
服务器首先检查这个客户端的请求里是否已包含了一个session标识 - 称为session id,
此时就是两种可能,客户机有session id或者没有session id
第二步:
如果已包含一个session id则说明以前已经为此客户端创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个)
如果客户端请求不包含session id,则为此客户端创建一个session并且生成一个与此session相关联的session id
(session id的值应该是一个既不会重复,又不容易被找到规律以仿造的字符串,这个session id将被在本次响应中返回给客户端保存。)
三、保存session id 的方法
一)、cookie:
二)、URL重写:
cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面。
分享到:
相关推荐
美术中的信息化应用小析(全文).docx
滞销楼盘问题小析.doc
小析绩效审计发展态势.doc
easy-calculator 一个简单的计算器的JS实现,未提供小数点及括号运算 演示: 实现小析:
石油IC卡在使用中的安全性及其附加价值小析,堵晶晶,,1920年,美国吉尔巴克(GILBARCO)公司生产了世界第一台机械燃油加油机;1974年,推出了世界第一台电脑加油机,有了电脑系统,加油机�
光伏并网微逆变器核心技术小析.pdf光伏并网微逆变器核心技术小析.pdf
光伏并网微逆变器核心技术小析.docx光伏并网微逆变器核心技术小析.docx
小析火力发电企业物流成本管理.doc
大学健美操教育的问题与路径小析.doc
③正域等价类作为决策可辨识矩阵的行,分情况给出了新决策表求取所有决策约简集的极小析取范式属性约简方法。该方法统一解决了相容和不相容决策表所有决策约简集的求取问题,最后通过实例分析验证了算法的可行性与有效...
渗透测试和安全测试入门相关,扫盲安全测试;安全事,无大小;也许你的一个提醒,可以挽回公司的巨大损失
滞销楼盘问题小析DOC简洁、实用的特性,相信能够为大家利用人力、物力、财力、资源等带来许多帮助,欢迎...该文档为滞销楼盘问题小析DOC,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
唐人送别诗小析 (2003年)
对小波分析分讲解以及实例教学,可以实现,内附word说明
设计理论版本多如牛毛,我这里仅仅整理5个方面来分析网页专场设计的一些方法,本人并非大师或资深,欢迎各式拍砖设计理论每人都会或多或少的知道一些,但是我们作品是给谁看的,我们的真正用户是谁,用户的特性是...
论文研究-计算约简的差别矩阵简化算法...实际应用中给出一种简化算法:一边从信息表中提取差别元素构成合取范式,一边用分配律、吸收律作逻辑公式的等价变换,直接得到最小析取范式.本章给出反例,说明该简化算法不总成立.
使用因素逻辑重构该方法的相关定义,并给出了极小析取范式步骤,即重构分类推理法步骤。使用原方法和重构方法分析了实例,证明两种方法得到的系统结构相同,而后者具有更高的逻辑数学层次和广泛的应用能力。
智能家居被看作是下一个风口,但是近两年智能家居市场一直不温不火。一方面,很多智能产品并不能够抓住用户痛点,真正满足用户的需求,很多用户对此的接受度不高。另一方面,这个市场的格局还未形成, 无论是技术...