Session和Cookie

以下是w3c学院中两则ASP中应用session和cookie的文章:

 

ASP Session 对象

http://www.w3school.com.cn/asp/asp_sessions.asp

 

ASP Cookie

http://www.w3school.com.cn/asp/asp_cookies.asp

 

http是无状态协议,这就需要有一种机制,来维护客户的上下文信息,而session和cookie就是在客户与服务器间维护客户上下文信息的机制。session是一个典型应用就是站点登录页利用session存储用户登录信息,而站点的其它页通过这个session来分享登录信息如判断是否登录获取登录名等。cookie的典型应是就是w3c的那个记录客户是第几次登录的asp代码示例。

 

了解session和cookie机制的最好方法是通过http协议分析工具捕获特定页面的交互数据

 

Session:session是一种由服务端保存上下文信息的机制

 

当通过浏览器访问站点的一个页面时,服务端建立一个session,生成一个与此session对应的唯一session id,并通过http响应报文头的set cookie段返回session id 或者也称为会话cookie

login.asp代码示例

 

 

浏览器记住这个session id,将它保存在内存中,并在下一次对该站点页面的请求(可能是站内的另一个页面)时在http请求报文头的cookie中放入这个session id,这样就建立了一个客户端到服务器的唯一会话机制。这里需要注意的是,前面讲的下一次对该站点的页面请求是指在不关闭浏览器的情况。

 

ListData.asp代码示例

如果重新打开一个浏览器并访问ListData.asp,显然只能得到null的userid

 

在页面代码中可以显示的删除session以结束一个session

 

Logout.asp代码示例

此时如果再访问ListData.asp浏览器可能仍然在http报文头中带上原sessionid,也就是说仍然会得到正确的userid,这时需要刷新一下页面。

 

如果是直接关闭浏览器,服务端的session并不会马上被删除,而是有一个生存期,也会就是说如果在session生存期内,即使浏览器已关闭,利用原seesion id仍然能够重新使用这个session。

 

Cookie:cookie是一种在客户端保存上下文信息的机制

 

如果站点页面中有建立cookie的代码,则服务端会在该页面的http响应报文头的set Cookie段(可以有多个)中将存入该cookie的相关内容,浏览器取得这个cookie,并在自已的cookie存放目录中以文件形式保存。并在下一次对该站点页面的请求(可能是站内的另一个页面)时在http请求报文头的cookie中放入这个cookie的内容。这里需要注意的是,与session id不同,这里的下一次可以是关闭浏览器之后,只要在该cookie的生存期内。

 

Welcome.asp代码示例

 

 需要注意的是,cookie是与浏览器或者说应用程序相关的,浏览器间并不共cookie文件,以上页面用IE访问几次以后,再用Firefox打开,显示是第一次访问,也就是说IE和Firefox各自维护cookie文件。

 

Session与Cookie的主要区别:

1、session在服务端保存,cookie在客户端保存

2、session id在客户端是保存在内存中的,且同一浏览器的两个实例间并不共享session id。cookie是保存在磁盘上的,同一浏览器的多个实例间共享cookie

3、...

 

参考资料:

关于session与cookie区别

http://blog.csdn.net/yytt123622/archive/2009/04/20/4094990.aspx

 

 cookie 和session 的区别详解

http://www.cnblogs.com/shiyangxt/archive/2008/10/07/1305506.html

 

session和cookie的最深刻理解

http://tech.ddvip.com/2009-04/1239535812114689.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值