对于session与cookie机制,自己的一点理解
来源:互联网 发布:时间序列预测值算法 编辑:程序博客网 时间:2024/05/29 16:47
参考:http://hi.baidu.com/jmtbai/item/0b4a46f9b57f296e3d148575
session与cookie:
session与cookie的引入原因:用户在浏览一个网站时候可能会浏览此网站的多个网页(比如百度的贴吧和知道)。用户每次打开一个网页都要和服务器重新建立连接,但是由于http协议无状态无记忆的特点,此次连接无法获得上次连接的状态。这样,比如用户在之前此网站下的一个网页登陆了,在跳转到此网站的另一个网页的时候却无法得到原先的登陆信息。
总而言之,就是在同一个客户端与同一个服务端多次连接的过程中,由于http协议无状态无记忆的特点,一些变量的值无法传递。
解决方法:
思路:在服务器端保持状态——当客户端(用户)访问服务器的时候,服务器为每个用户分配一个session(session可以看做是一个存储空间,可以存储一些变量,比如登陆信息,购物车信息等),每个session同时分配一个唯一的session id来标记,这个session放在服务器的内存之中。同时将这个session id发送给客户端,保存在客户端的会话cookie中。
这样,当客户端再次和服务器建立连接的时候,客户端会把对应此服务器的session id发送给服务端,根据此session id,在服务器中查询为此用户分配的session是否存在,如果存在的话,此次连接就可以获取到之前连接时候保存在session中的一些信息。
关于cookie:
cookie分为两种:session cookie 与 persistent cookie
session cookie一般保存在客户端的内存中,配合session使用,当服务端为每个用户分配了一个session之后,需要将session id发送给用户,这样用户再次和服务器建立连接时候,能够辨认用户对应服务端的哪个session,这个session id通常就被存在session cookie之中。
persistent cookie:典型应用——自动登录:当用户登录一个网站时,服务器会发送包含登录凭据(用户名+密码的加密形式以及网站的标识)的cookie到用户的硬盘上。第二次登录时,(如果该Cookie尚未到期)浏览器会发送该Cookie,服务器验证凭据,于是不必输入用户名和密码就让用户登录了。
session与cookie的一个经典小例子:
一家咖啡店有喝5杯咖啡免费赠一杯咖啡的优惠,然而一次性消费5杯咖啡的机会微乎其微,这时就需要某种方式来纪录某位顾客的消费数量。想象一下其实也无外乎下面的几种方案:
1、发给顾客一张卡片,上面记录着消费的数量,一般还有个有效期限。每次消费时,如果顾客出示这张卡片,则此次消费就会与以前或以后的消费相联系起来。这种做法就是在客户端保持状态。——相当于cookie机制
2、发给顾客一张会员卡,除了卡号之外什么信息也不纪录,每次消费时,如果顾客出示该卡片,则店员在店里的纪录本上找到这个卡号对应的纪录添加一些消费信息。这种做法就是在服务器端保持状态。其中,会员号必须客户自己知道,这就相当于session cookie。——相当于session机制
- 对于session与cookie机制,自己的一点理解
- 对于 PHP cookie 与 session 的理解
- 对于Session的一点理解
- 对于Session、Cookie的理解
- 对于session和cookie的理解
- 理解cookie和session机制之间的区别与联系
- Cookie与Session机制,以及scrapy中cookiejar的理解
- session机制和cookie机制的理解
- Cookie 与session 通熟一点的理解, 并且Cookie防劫持的处理
- session与cookie的理解
- SESSION与COOKIE的理解
- Session与Cookie的理解
- cookie和session之自己的理解
- Session与Cookie的一点总结
- 自己对于消息机制的理解
- Cookie的机制与Session机制
- cookie机制与session机制的区别
- cookie机制与session机制的区别
- 如何将oracle表中的字段类型、字段注释说明、字段名一起查询出来
- windows消息码大全
- java设置代理访问URL
- ffmpeg开发中出现的问题(二)
- Struts 2中OGNL表达式
- 对于session与cookie机制,自己的一点理解
- asp.net中的跨页发送(利用PreviousPage.FindControl()方法取值)
- 《Oracle Applications DBA 基础》- 9 - Concurrent Processing
- 企业要什么样的“云”
- 第一篇呦~
- 排序:快速排序
- Linux rm 那点事
- 理解HTTP/304响应
- think in java interview-高级开发人员面试宝典2