MyException - 我的异常网
当前位置:我的异常网» Java Web开发 » [-望推荐-] 小弟我对cookie及session的一点理解及疑

[-望推荐-] 小弟我对cookie及session的一点理解及疑惑,和朋友们交流(2)

www.MyException.Cn  网友分享于:2015-08-27  浏览:318次


由于cookie可以被人为的禁止,必须有其他机制以便在cookie被禁止时仍然能够把session id传递回服务器。经常被使用的一种技术叫做URL重写,就是把session id直接附加在URL路径的后面,附加方式也有两种,一种是作为URL路径的附加信息,表现形式为http://...../xxx;jsessionid= ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 
另一种是作为查询字符串附加在URL后面,表现形式为http://...../xxx?jsessionid=ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764 
这两种方式对于用户来说是没有区别的,只是服务器在解析的时候处理的方式不同,采用第一种方式也有利于把session id的信息和正常程序参数区分开来。 
为了在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id。 


详细见博客
http://blog.csdn.net/yinyuan1987/archive/2008/11/17/3321213.aspx
------解决方案--------------------
1, web中为何要引入cookie和session 
cookie和session说白了确实是用来传递保存参数的,但是他们有更重要的作用。常用的参数传递方法就是使用POST,GET方法,但是我们总不能将登录信息,验证票据使用POST,GET方法传来传去吧,这些信息是在会话过程中始终都要用到的,所有引入了SESSION,用户保存会话过程中所需要的参数,而cookie就是一种“持久化”,保存在客户端的,每次请求都要将cookie传输过去,而不需要手动添加。前提是COOKIE可用。没有禁用。

2, cookie,session是如何传递参数的: 
COokie和session都是键值对,cookie保存在客户端,而session在会话过程中都保存在内存中,内存中的数据可以直接读取,而cookie是通过http传递到服务器来进行传递的。

------解决方案--------------------
session是实时状态对象。cookies是它的持久化方式。
------解决方案--------------------
探讨
在web应用中:
会话:一个客户端浏览器与web服务器之间连续发生的一系列请求响应的过程。
会话状态:web服务器与浏览器在会话过程中产生的状态信息,借助会话状态web服务器能够把属于同一会话中的一系列的请求和响应过程关联起来,使它们之间能够互相依赖和传递信息。(购物车)

在基于web的电子商务中,浏览器与web服务器的会话过程必须是有状态的,即:web服务器在处理浏览器下一个请求时,需要知道该浏览器前面所发出…

------解决方案--------------------
session应该是保存在服务器、而cooki保持在客户端的。
------解决方案--------------------
Session是房子,Cookie是砖头。

盖房子可以用砖头,也可以不用砖头;当然,砖头不仅仅可以用来盖房子,还有许多其它用处。

房子和砖头之间没有必然的联系。




------解决方案--------------------
让我们用几个例子来描述一下cookie和session机制之间的区别与联系。笔者曾经常去的一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微乎其微,这时就需要某种方式来纪录某位顾客的消费数量。想象一下其实也无外乎下面的几种方案: 
1、该店的店员很厉害,能记住每位顾客的消费数量,只要顾客一走进咖啡店,店员就知道该怎么对待了。这种做法就是协议本身支持状态。 
2、发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。 
3、发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有