社区
Web 开发
帖子详情
急,百分求助
w254943437
2011-05-28 12:25:09
session和cookie有什么区别啊,要详细点的,速度了
...全文
50
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
百分
比误差、
百分
比差异、
百分
比变化
____tz_zs Percentage Error
百分
比误差 将近似值与精确值进行比较时使用
百分
比误差. 忽略减号(不要理会),除非您想知道误差是低于还是高于准确值 "
百分
比误差"的公式:
百分
比误差=∣近似值−准确值∣∣准确值∣×100% \mathrm{
百分
比误差}=\frac{\left|\mathrm{近似值}-\mathrm{准确值}\right|}{\left|\mathrm{准确值}\right|}\times100\%\\
百分
比误差=∣准确值∣∣近似值−准确值∣×100% Per
java计算数据的
百分
比
概述 有这样一个需求,需要计算一个集合中的数据占集合总数的
百分
比,这里做一个简单的记录。 java计算数据的
百分
比 实现代码如下: import java.text.DecimalFormat; import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class Test3 { public static
html
百分
比单位,
百分
比表示什么 请问
百分
之几,怎样算的,什么意思?
百分
比又叫
百分
数,
百分
数是分母为100的特殊分数,其分子可不为整数。
百分
数表示一个数是另一个数的
百分
之几,表示一个比值。
百分
比是一种表达比例、比率或分数数值的方法,如82%代表
百分
之八十二,或82/100、0.82。
百分
率和
百分
比有什么区别?
百分
比和
百分
率是一个概念。
百分
数也叫做
百分
率或
百分
比,通常不写成分数的形式,而采用
百分
号(%)来表示,如41%,1%等。由于
百分
数的分母都是100,也就是都以...
百分
比计算机公式,
百分
比的计算公式怎么算的(免费教你计算
百分
比)
时间来到12月初,最近甜甜老师课业繁重,因为还有一个月就要迎来期末考试啦,备考阶段甜甜老师和同学们一样奋战在前线!目前大部分学校的进度已经学到甚至学完了第六单元《
百分
数(一)》,这一单元的知识点并不多,且
百分
数的解题思路和分数乘除法的解题思路基本上相差无几,所以学起来并不算是很难。但是,
百分
数这个单元的题型却很容易出错,尤其是有些题目看起来比较容易混淆,很多同学搞不清楚。比如说常见的题目,求男生是...
掌握
百分
比计算:从基础到应用
百分
比的含义可以简单理解为每一百个单位中的多少个单位。符号表示为%,这种表示方法最早由数学家和物理学家所使用,并逐渐成为国际标准。
百分
比作为一种表示法,用来描述一个数是另一个数的多少
百分
之几。符号“%”用来表示
百分
比,来源于拉丁语“per centum”,意味着“每百”或“逐百”。在数学表达式中,一个数的
百分
比可以表示为这个数除以100的结果。例如,若要表示数字5是10的50%,我们可以写作5%。折扣定义为商品或服务价格在特定条件下的减让。
Web 开发
81,110
社区成员
341,726
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章