Cookie与Session的区别(面试的是时候别傻傻的说只有存储位置不同)

Cookie与Session的具体区别:

1…存储位置不同

通常情况
Cookie的数据信息存放在客户端浏览器上。
Session的数据信息存放在服务器上。

2.存储容量不同

通常情况
单个Cookie保存的数据≤4KB,一个站点最多保存20个Cookie。
对于Session并没有上限,但出于对服务器端的性能考虑,Session内不要存放过多的东西,并设置session删除机制

3.存取方式不同:

Cookie中只能保管ASCll字符串,需要通过编码的方式存取Unicode字符或者二进制数据。运用Cookie难以实现存储略微复杂的信息

4.隐私策略不同

Cookie对客服端是可见的,别有用心的人可以分析放在本地的Cookie上面并进行Cookie欺骗,所以它是不安全的

5.有效期不同

开发可以通过设置Cookie的属性,达到Cookie长期有效的效果
由于Session依赖于名为JSESSIONID的cookie,而Cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该Session就会失效,因而Session不能达到长期有效的效果,就算不依赖Cookie,运用URL地址重写也不能完成,因为假如设置Session的超过时间过长,服务器累计的Session就会越多,越容易导致内存溢出

6.服务器压力不同

Session是保管在服务端的,每个用户都会产生一个Session,假如并发访问的用户十分多,会产生十分多的Session,耗费大量的内存
Cookie是保管在客户端,不占用服务器资源,对于并发用户十分多的网站,cookie是很好的选择

7.浏览器支持不同:

假如客户端浏览器不支持Cookie。
Cookie是需要客户端浏览器支持的。假如客户端禁用了Cookie,或者不支持Cookie,则会话跟踪会失效。关于WAP上的应用,常规的Cookie就派不上用场了。
运用Session需要使用URL地址重写的方式。一切用到Session程序的URL都要进行URL地址重写,否则Session会话跟踪还会失效。关于WAP应用来说,Session+URL地址重写或许是它唯一的选择。
假如客户端支持Cookie。
Cookie 既能够设为本浏览器窗口以及子窗口内有效(把过期时间设为−1),也能够设为一切窗口内有效(把过期时间设为某个大于0的整数)。
Session 只能在本窗口以及其子窗口内有效。假如两个浏览器窗口互不相干,它们将运用两个不同的Session。(IE8下不同窗口Session相干。)

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

欢迎各位亲加入软件测试提升群: 337237612

你可能感兴趣的:(Cookie与Session的区别(面试的是时候别傻傻的说只有存储位置不同))