专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Html教程 » session运行机制:理解session机制 »正文

session运行机制:理解session机制

来源: 发布时间:星期四, 2009年2月12日 浏览:274次 评论:0


   session机制是种服务器端机制服务器使用种类似于散列表结构(也可能就是使用散列表)来保存信息 
   当需要为某个客户端请求创建个session时候服务器首先检查这个客户端请求里是否已包含了个session标识 - 称为 session id如果已包含个session id则介绍说明以前已经为此客户端创建过session服务器就按照session id把这个 session检索出来使用(如果检索不到可能会新建个)如果客户端请求不包含session id则为此客户端创建个session并且生成个和此session相关联session idsession id值应该是个既不会重复又不容易被找到规律以仿造这个 session id将被在本次响应中返回给客户端保存 
   保存这个session id方式可以采用cookie这样在交互过程中浏览器可以自动按照规则把这个标识发挥给服务器般这个cookie名字都是类似于SEEESIONID比如weblogic对于web应用生成cookieJSESSIONID= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764名字就是 JSESSIONID
由于cookie可以被人为禁止必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器经常被使用种技术叫做URL重写就是把session id直接附加在URL路径后面附加方式也有两种种是作为URL路径附加信息表现形式为http://...../xxx;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764
种是作为查询串附加在URL后面表现形式为http://...../xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 
   这两种方式对于用户来说是没有区别只是服务器在解析时候处理方式区别采用第种方式也有利于把session id信息和正常参数区分开来 
   为了在整个交互过程中始终保持状态就必须在每个客户端可能请求路径后面都包含这个session id
种技术叫做表单隐藏字段就是服务器会自动修改表单添加个隐藏字段以便在表单提交时能够把session id传递回服务器比如下面表单
<form name=\"testform\" action=\"/xxx\">
<input type=\"text\">
</form>
在被传递给客户端的前将被改写成
<form name=\"testform\" action=\"/xxx\">
<input type=\"hidden\" name=\"jsessionid\" value=\"ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764\">
<input type=\"text\">
</form>
这种技术现在已较少应用笔者接触过很古老iPlanet6(SunONE应用服务器前身)就使用了这种技术
实际上这种技术可以简单用对action应用URL重写来代替
在谈论session机制时候常常听到这样种误解“只要关闭浏览器session就消失了”其实可以想象下会员卡例子除非顾客主动对店家提出销卡否则店家绝对不会轻易删除顾客资料对session来说也是除非通知服务器删除个session否则服务器会直保留般都是在用户做log off时候发个指令去删除session然而浏览器从来不会主动在关闭的前通知服务器它将要关闭因此服务器根本不会有机会知道浏览器已经关闭的所以会有这种错觉是大部分session机制都使用会话cookie来保存session id而关闭浏览器后这个 session id就消失了再次连接服务器时也就无法找到原来session如果服务器设置cookie被保存到硬盘上或者使用某种手段改写浏览器发出HTTP请求头把原来session id发送给服务器则再次打开浏览器仍然能够找到原来session [Page]
恰恰是由于关闭浏览器不会导致session被删除迫使服务器为seesion设置了个失效时间当距离客户端上次使用session时间超过这个失效时间时服务器就可以认为客户端已经停止了活动才会把session删除以节省存储空间
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: