Session变量和Cookies

Session变量 和 Cookie 的区别在于:信息的存储位置不同,保存的时间也不同。

    超文本传输协议(HTTP)本质上是无状态的,也就是说,从网页客户端到网页服务端的所有请求之间没有任何关联。最初Cookie的作用 就是作为这种无状态的补偿。
    Cookie 是网页服务器存储在网页客户端硬盘上的文本文件。网页服务器向网页服务端请求存储一段信息,信息可以保存在Cookie 中。之后每当客户端向服务器申请一个页面时,都会将该信息发回服务端。
    Session(会话)变量可以做同样的事情,但Session变量将在服务端为每个连接建立一个字典对象,这是使用的是服务端存储。根据浏览器和Session的状态对该站点做出的定义,Session 就可以真正地创建一个Cookie ,并使用一个标识符来存储对该字典对象的引用。Cookie 可能会有一个按照年月来判断的作废日期,而Session 级别的变量在连结超时后就作废了。
posted @ 2004-11-04 11:16 xyicheng 阅读(627) 评论(4)  编辑 收藏 所属分类: 技术笔记

  回复  引用  查看    
#1楼 2004-11-04 14:16 | Chep      
在ASP.NET中如果客户端禁用了Cookie,其Cookie将经编码后保存在url中
  回复  引用  查看    
#2楼 2004-11-04 16:11 | Unruled Boy(灵感之源)      
URL长度是有限制得,如果Cookie长度超出呢限制,那怎么办?
  回复  引用    
#3楼 2004-11-04 17:02 | user [未注册用户]
学习
  回复  引用  查看    
#4楼 [楼主]2004-11-04 20:43 | rebirth      
另一种补偿HTTP无状态的方法是使用隐含表单,参数可以通过隐含表单传递。
Session 方式基于URL重写和Cookie
总之,
把要传递的参数保存在两个页面都能共享的对象中,前一个页面在这个对象中写入状态、后一个页面从这个对象中读取状态。特别是对于使用session方式,每个客户端在服务端都对应了一个sessionid,服务端维持了由sessionid标识的一系列session对象,而session对象用于保持共享的信息。

这样就可以在服务端标识每个Web服务客户端,并且把它们的状态保持在某个可以共享的位置,比如内存、文件系统、数据库。

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
另存  打印