社区
Web 开发
帖子详情
急,百分求助
w254943437
2011-05-28 12:25:09
session和cookie有什么区别啊,要详细点的,速度了
...全文
28
2
打赏
收藏
急,百分求助
session和cookie有什么区别啊,要详细点的,速度了
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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%
oracle cpu上不去,
求助
,
急
!oracle进程CPU使用率上不去……
4 CPU,rhel 5 + oracle10gr2 OLAP昨天linux重启一次后,oracle进程的cpu使用率一直上不去,大查询和过程一直在跑,但无法获得足够的CPU资源,速度极其缓慢,idle值基本在
百分
之50以上怀疑是os层面出了什么问题top -...
2021-10-26
dir/s,然後由磁盤文件太多了,他一直掃不完 ,然後我一著
急
就觀點了,然後那個後臺命令旨在運行,就重新關機,重裝系統也沒有用,感覺好像關不掉一樣,然後問題來了,非常占內存,每次開機內存佔用
百分
之30%-40%,...
2009年5月心理咨询师考试三级真题详解(技能选择题、案例问答题)
半年来
求助
者的心里很不是滋味,找朋友聊天、看电影等无济于事,看什么都不顺眼,经常发脾气,甚至乱扔家里的东西。虽然目前的工作和 生活没什么可担心的,衣食无忧,但就是心里有种说不出来的烦恼。觉得自己没用,...
我是如何降低数据库80%负载的
于是我
求助
于Papertrail来看看在现实生产环境中这个语句什么时候被调用的。我找到的第一条记录在一个创建操作中: Started POST "/repos" for 131.228.216.131 at 2017-06-29 09:34:59 Processing by ...
腾讯IEG部门 —— 面试状态疑惑 &; 状态
求助
,帮帮孩子
各大岗位
急
招!欢迎找我内推!内推码:PPWD7X3 已入职近两年,有任何问 TPlink得亏我睡得晚!!! 夜里快十一点了发短信让我第二天面试,但凡我今天早睡了,都看不见这个消息,有没有前辈分享一点经验,助我 #牛客...
Web 开发
81,117
社区成员
341,740
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章