社区
Web 开发
帖子详情
急,百分求助
w254943437
2011-05-28 12:25:09
session和cookie有什么区别啊,要详细点的,速度了
...全文
49
2
打赏
收藏
急,百分求助
session和cookie有什么区别啊,要详细点的,速度了
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wang_huanming
2011-05-28
打赏
举报
回复
Cookie和Session都可以进行会话跟踪的,但是实现的原理不一样。一般情况下,二者均可以满足需求。下面比较说明二者的特点以及之间的区别。
1.从存取方式上比较
Cookie中只能保存ASCII字符串,如果需要存取Unicode字符或则二进制数据,需要进行UTF-8,GBK等方式的编码。Cookie中也不能直接存取JAVA对象。弱需要存取稍微复杂的信息,使用Cookie是比较困难的。
而Session中可以存取任何类型的数据,包括String,integer,List等,以及Java Bean甚至任何的Java类,对象等,使用起来非常方便。可以把Session看作是一个Java容器类。
2.从隐私安全上比较
COokie存储在客户端的浏览器中,而客户端是可见的,客户端的一些程序俄可能会窥探,复制甚至修改Cookie中的内容。而Session存储在服务器上,对客户端是透明的,不存在敏感信息泄漏的危险。
如果选用Cookie,比较好的办法是,明爱的信息,如帐号密码等尽量不要写到Cookie中。最好是像Google、Baidu那样将cookie信息加密,提交到服务器后在进行解密,保证Cookie中信息只用自己能读得懂。而如果选择Session就省事多了,反正是放在服务器端上,Session中的任何隐私都可以。
3.从有效期上比较
使用过Google的人都知道,如果登陆过Google,则Google的登录信息长期有效。用户不必每次访问都重新登录,Google会长久的记录该用户的登录信息。要达到这种效果,使用Cookie是比较好的选择。只需要设置Cookie的maxAge属性为一个很大很大的数字或者Integer.MAX_VALUE的maxAge默认为-1.Cookie的maxAge属性支持这样的效果。
使用Session理论上也能实现这种效果。只要调用方法setMaxInactiveInterval(Integer.MAX_VALUE)不就可以了么。但是由于Session依赖于名为JSESSIONID的Cookie,而Cookie JSESSIONID的maxAge默认值为-1,只要关闭了浏览器该Sessino就会失效,因此Session不能实现信息的永久有效的效果。使用URL地址重写也不能实现。
而且如果设置Session的超时时间过长,服务器累计的Session就会越多,越容易导致内存溢出。
4.从对服务器的负担上比较
Session是保存在服务器端的,每个用户都回产生一个Session.如果并发访问的用户非常多,会产生非常多的Session,消耗大量的内存。因此像Google,Baidu,Sina这样并发访问量极高的网站,是不太可能使用Session来追踪客户会话的。
而Cookie保存在客户端,不占用服务器自愿,如果并发浏览的用户非常多,Cookie是很好的选择,对于Google,Baidu来说,Cookie是唯一的选择。
5.从浏览器的支持上比较
Cookie是需要客户端浏览器的支持的,如果客户端禁用了Cookie,或者不支持Cookie,则会话跟踪失效,对于WAP上的应用,常规的Cookie就派不上用场了。
如果客户端不支持Cookie,需要使用Session以及URL重写。需要注意的是所有的用到Session的URL都要使用response.encodeURL(String URL)或者response.encodeRedirectURL(String URL)进行URL地址重写,否则导致Session会话跟踪失败。
如果客户端支持Cookie,则Cookie既可以设为本浏览器窗口以及小窗口有效,也可以设为所有浏览器窗口内有效(前提是maxAge必须设为大于0的某个整数),但Session只能在本浏览器窗口以及子窗口中有效。如果两个浏览器的窗口互不相干,他们将使用两个不同的Session。
6.从跨域名上比较
Cookie支持跨域名访问,例如将domain属性设置为”".helloweenvsfei.com",则以".helloweenvsfei.com"为后缀的所有域名均可以访问该Cookie。跨域名Cookie现在被广泛用在网络中。例如Google,Baidu等。而session则不会支持跨域名访问。Session尽在他所在的域名内有效。
注意:仅使用Cookie或者Session有时候不能达到理想的效果,可以常识一下同时使用Cookie和Session。这在实际项目中会实现绚烂多姿的效果。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wang_huanming/archive/2011/04/14/6323673.aspx
朱超ZhuChao.Tech
2011-05-28
打赏
举报
回复
0.00%
math
百分
比误差、
百分
比差异、
百分
比变化
本文介绍了
百分
比误差、
百分
比差异及
百分
比变化的概念与计算方法。
百分
比误差用于比较近似值与准确值;
百分
比差异适用于两个同等重要的值之间的比较;
百分
比变化则用于描述新旧值的变化程度。
java计算数据的
百分
比
博客记录了计算集合中数据占集合总数
百分
比的需求,给出了Java实现计算数据
百分
比的代码及运行结果。
html
百分
比单位,
百分
比表示什么 请问
百分
之几,怎样算的,什么意思?
百分
比和
百分
率是表示数值比例的概念,它们表示一个数是另一个数的
百分
之几。
百分
数通常以%符号表示,不带有单位,常用于统计、比较和数据分析。在工农业生产、科学技术等领域,
百分
比有着广泛应用,例如坡度的表示、合格率计算等。计算
百分
比时,可以将
百分
数转化为小数进行运算。
百分
比和
百分
率是同一概念,不作区分。
百分
比计算机公式,
百分
比的计算公式怎么算的(免费教你计算
百分
比)
甜甜老师分享了
百分
数的学习方法和解题技巧,包括求一个数是另一个数的
百分
比、常见
百分
率计算以及求两数相差的
百分
比。通过实例解析和练习题,帮助学生掌握
百分
数的应用,强调理解每个
百分
率的实际意义,并提供了清晰的解题步骤和公式。
掌握
百分
比计算:从基础到应用
本文系统讲解
百分
比的核心概念、数学定义及表示方法,涵盖基础计算公式、增减
百分
比、
百分
比比较、与小数/分数的相互转换,并重点阐述其在商业(税率、折扣)、金融(复合增长)和统计中的实际应用。内容强调计算逻辑与实用场景结合,适用于数据分析、财务决策与日常问题求解。
Web 开发
81,110
社区成员
341,727
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章