本地存储

cookie 和session 的区别

2017-12-27  本文已影响69人  该帐号已被查封_才怪

之前没有用过session,只用过HTML5中localStorage(以前总结过sessionStorage 、localStorage和cookies的区别);刚开始我以为session和sessionStorage是同一个东西。。。
它们的区别:

1、存储位置:

cookie数据存放在浏览器上,session数据存放在服务器上;

2、安全性

cookie相对来说没有session安全,因为别人可以通过分析cookie来进行cookie欺骗;(当然我们可以加密解密cookie)因此一般情况下登录等重要信息应采用session;

3、性能

session会在一定时间内保存在服务器上,因此当访问增大时,会影响服务器的性能,而cookie则不存在该情况;

4、大小限制

cookie有大小限制(不能超过4k),很多浏览器会限制一个站点最多保存20个cookie,而session的大小则只以硬件为限制;

5、存取方式

Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码。Cookie中也不能直接存取Java对象。若要存储略微复杂的信息,运用Cookie是比拟艰难的。
而Session中能够存取任何类型的数据,包括而不限于String、Integer、List、Map等。Session中也能够直接保管Java Bean乃至任何Java类,对象等,运用起来十分便当。能够把Session看做是一个Java容器类。

6、跨域支持

Cookie支持部分跨域名访问,例如将domain属性设置为“.biaodianfu.com”,则以“.biaodianfu.com”为后缀的一切域名均能够访问该Cookie。跨域名Cookie如今被普遍用在网络中,例如Google、Baidu、Sina等。而Session则不会支持跨域名访问。Session仅在他所在的域名内有效。

7、生命周期

(以20分钟为例)
(1)cookie的生命周期是累计的,从创建时,就开始计时,20分钟后,cookie生命周期结束,
(2)session的生命周期是间隔的,从创建时,开始计时如在20分钟,没有访问session,那么session生命周期被销毁
但是,如果在20分钟内(如在第19分钟时)访问过session,那么,将重新计算session的生命周期
(3)关机会造成session生命周期的结束,但是对cookie没有影响

参考资料:
1、 cookie 和session 的区别详解
2、Cookie与Session的区别与联系及生命周期
3、Cookie与Session的区别

上一篇下一篇

猜你喜欢

热点阅读