社区
Web 开发
帖子详情
急,百分求助
w254943437
2011-05-28 12:25:09
session和cookie有什么区别啊,要详细点的,速度了
...全文
20
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
宁波朱超
2011-05-28
打赏
举报
回复
0.00%
oracle cpu上不去,
求助
,
急
!oracle进程CPU使用率上不去……
4 CPU,rhel 5 + oracle10gr2 OLAP昨天linux重启一次后,oracle进程的cpu使用率一直上不去,大查询和过程一直在跑,但无法获得足够的CPU资源,速度极其缓慢,idle值基本在
百分
之50以上怀疑是os层面出了什么问题top - 19:37:56 up 1 day,5:15,3 users,load average: 13.72, 13.93, 13.6...
2021-10-26
自從我在C盤跟目錄下執行了掃描磁盤的目錄命令:dir/s dir/s,然後由磁盤文件太多了,他一直掃不完 ,然後我一著
急
就觀點了,然後那個後臺命令旨在運行,就重新關機,重裝系統也沒有用,感覺好像關不掉一樣,然後問題來了,非常占內存,每次開機內存佔用
百分
之30%-40%,就挺煩的,有沒有大佬有辦法解決的?在線
求助
。 ...
2009年5月心理咨询师考试三级真题详解(技能选择题、案例问答题)
http://www.100xinli.com/Detail.aspx?id=181981 内容介绍 >> 本套试题是2009年5月心理咨询师考试三级(技能选择 题、案例问答题)真题,遵循指定教材《心理咨询师(基础知识国家职业资格培训教程)》、《心理咨询师(3级国家职业资格培训教程)》,中华心理学习网对每 道试题的答案进行了详细的分析和说明。下面是真...
我是如何降低数据库80%负载的
原文:How I Reduced My DB Server Load by 80% 作者:Richard Schneeman 译者:roy译者注:一个前端开发者介绍了他和他的数据库朋友们是如何降低基于Ruby网站数据库负载的故事。以下为译文:数据库负载可能是个沉默的性能杀手。我一直都在优化我的一个网站应用,用来吸引人们参与到开放代码社区,但我注意到一些随机的查询时间异常,有时会长达15s或更长...
腾讯IEG部门 —— 面试状态疑惑 &; 状态
求助
,帮帮孩子
投了华为od前端,三月22号机试,第一道通过了,第二道通过了,第三道写了很多,但是做不出来,因为结果。目前正在准备暑期实习,准备月底投一波,但对自己实在是没信心,请问对一家厂来说,开发被刷了再投这个厂的。NLP,CV还是ML,算法岗转数科好转吗,双非本2硕做NLP方向的,没有论文没有算法竞赛,只有两个项。就找工作已经神志不清了,想去央企躺,但怕躺不平,去私企卷又怕卷不动,难搞哦,兄弟们来帮我看看选哪个合?吾幼年,即厌学,家贫,无从致书以观,前去新华书店白嫖经书,天酷暑,口干涩,唇部干裂而不知,畏之关门过。
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章