对cookie和session的区别的理解

百度百科对cookie的解释:
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否是合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。
百度百科对session的解释:
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web 页时,如果该用户还没有会话,则 Web 服务器将自动创建一个 Session 对象。当会话过期或被放弃后,服务器将终止该会话。Session 对象最常见的一个用法就是存储用户的首选项。例如,如果用户指明不喜欢查看图形,就可以将该信息存储在 Session 对象中。注意 会话状态仅在支持 cookie 的浏览器中保留。

个人认为
关于二者的区别主要有:
一:会话数据存储位置
Cookie存放于浏览器端(就是客户端),session存放于服务器端。同时Cookie功能需要浏览器的支持。如果浏览器不支持Cookie(如大部分手机中的浏览器)或者把Cookie禁用了,Cookie功能就会失效。而session是一种基于Cookie的一种机制。与Cookie不同的是,仅在浏览器端维持一个sessionid,用来标识某个会话对应的服务器端的session数据区,用来配对使用。也就是同时打开多个浏览器窗口时,服务器会生成多个session,但是这些session互不干扰,每个客户得到自己的session。就好比夫妻关系中,爸爸和妈妈是一对,爷爷和奶奶是一对,外公和外婆是一对,哥哥和嫂嫂是一对,不能妈妈和哥哥是一对。
二:安全性
cookie的安全性由于HTTP无状态是比较低的,而session的安全性相比较高。因为cookie使用HTTP协议的数据不经过任何加密就直接在网络上传播,容易被窃取信息。而session通过识别id来确认是不是同一个客户。
三:数据传输量
提高用户体验使用cookie,那么网络之间的数据传输量就会比较大,而session的数据传输量比较小,因为数据大了会不稳定,且效率不高。
四:支持会话数量
浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4KB。而对session数量没有限制。
五:支持数据类型
cookie只支持字符串这种数据类型,而session虽然是基于cookie的一种机制,但是它可以支持全部类型的数据,因为session数据区里面的数据是经过序列化以后才存储的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值