怎样理解cookie和session
2016-12-08 14:13
330 查看
让我们用几个例子来描述一下cookie和session机制之间的区别与联系。笔者曾经常去的一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微乎其微,这时就需要某种方式来纪录某位顾客的消费数量。想象一下其实也无外乎下面的几种方案:
1.该店的店员很厉害,能记住每位顾客的消费数量,只要顾客一走进咖啡店,店员就知道该怎么对待了。这种做法就是协议本身支持状态。
2.发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。
3.发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。
由于HTTP协议是无状态的,而出于种种考虑也不希望使之成为有状态的,因此,后面两种方案就成为现实的选择。具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识(会员卡),所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。
1.该店的店员很厉害,能记住每位顾客的消费数量,只要顾客一走进咖啡店,店员就知道该怎么对待了。这种做法就是协议本身支持状态。
2.发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。
3.发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。
由于HTTP协议是无状态的,而出于种种考虑也不希望使之成为有状态的,因此,后面两种方案就成为现实的选择。具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用服务器端保持状态的方案在客户端也需要保存一个标识(会员卡),所以session机制可能需要借助于cookie机制来达到保存标识的目的,但实际上它还有其他选择。
相关文章推荐
- 深入理解PHP中的Session和Cookie
- 深入理解 Session 与 Cookie
- 对session和cookie的一些理解二
- 转!!深入理解 Session 与 Cookie
- 对session和cookie的一些理解
- 对session 与cookie的理解
- 深入理解 Session 与 Cookie
- 对Cookie和Session的理解
- 对Session和Cookie的区分与理解
- session 和 cookie 理解
- session和cookie的最深刻理解
- session,cookie的理解(总结)
- Cookie和Session的关系(个人理解)
- 彻底理解cookie,session,token
- Java Socket实现HTTP客户端来理解Session和Cookie的区别和联系
- session和cookie的一些理解
- session和cookie的一些理解
- Cookie与Session深入理解(一)——Cookie
- Java Socket实现HTTP客户端来理解Session和Cookie的区别和联系
- 深入理解Servlet/JSP之“Cookie和Session原理”