美文网首页测试基础课
Session和Cookie的区别

Session和Cookie的区别

作者: Xyxtank | 来源:发表于2019-05-04 22:58 被阅读1次

    一、存储位置不同

    • Cookie的数据信息存放在客户端的浏览器上。

    • Session的数据信息存放在服务器。

    二、存储容量不同

    • 单个Cookie保存的数据≤4KB,一个站点最多保存20个Cookie。

    • 对于Session并没有上限,但是出于对服务器端的性能考虑,Session内不要存放过多的东西,并且要设置Session删除机制。

    三、存取方式的不同

    • Cookie中只能保管ASCII字符串,需要通过编码的方式存取Unicode字符或者二进制数据。运用Cookie难以实现存储略复杂的信息。
    • Session中能够存取任何类型的数据,包括且不限于String、Integer、List、Map等。

    四、隐私策略的不同

    • Cookie对客户端是可见的,别有用心的人可以分析存放在本地的Cookie并进行Cookie欺骗,所以它不是很安全。

    • Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。

      总之,选择Cookie,比较好的方法就是,敏感信息,如账号密码等,尽量不要写到Cookie中。可以将Cookie信息加密,提交到服务器后再进行解密。存储在本地的Cookie就需要自行加密了。

    五、有效期的不同

    • Cookie的有效期可以进行设置,在其属性处进行设置,所以理论上Cookie是可以长期有效的。
    • Session依赖于名为JSESSIONID的Cookie,而Cookie JSESSIONID的过期时间默认为-1,只需要关闭该Session窗口就会失效,因而Session不能长期有效。就算不依赖于Cookie,运用URL地址重写也不能完成,因为假如设置Session的超时时间过长,服务器累计的Session就有越多,越容易导致内存的溢出。

    六、服务器压力的不同

    • Session保存在服务器端的,每个用户都会产生一个Session。假如并发访问的用户非常多,那意味着会产生非常多的Session,届时服务器会耗费大量的内存保管这些Session。
    • Cookie保存在客户端,不占用服务器资源。对于并发用户非常多的网站,Cookie是很好的选择。

    七、浏览器支持不同

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

    八、跨域支持上的不同

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

    相关文章

      网友评论

        本文标题:Session和Cookie的区别

        本文链接:https://www.haomeiwen.com/subject/sqkqoqtx.html