zoukankan      html  css  js  c++  java
  • Session与Cookie的区别

    Session与Cookie的区别

    1. 存储位置不同

    • Cookie的数据信息存放在浏览器(客户端)上。
    • Session的数据信息存放在服务器上。

    2. 存储容量不同

    • 单个Cookie保存的数据≤4KB,一个站点最多保存20个Cookie。
    • 对于Session并没有上限,但出于对服务器的性能考虑,Session内不要存放过多的东西,并且是指Session删除机制。

    3. 存取方式的不同

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

    4. 隐私策略的不同

    • Cookie对浏览器(客户端)是可见的,别有用心的人可以分析存放在本地的Cookie并进行Cookie欺骗,所以它是不安全的。
    • Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。
      假如选用Cookie,比较好的方法是:敏感的信息,如账号密码等,尽量不要写到Cookie中。可以将Cookie信息加密,提交到服务器后再进行解密。存储在本地的Cookie就需要自行加密了。

    5. 有效期上的不同

    • 开发可以通过设置Cookie的属性,达到使Cookie长期有效的效果。(测试人员可以通过对浏览器的设置修改Cookie的生命周期)
    • 由于Session依赖于名为JSESSIONID的Cookie,而Cookie JSESSIONID的过期时间默认为-1,只需关闭窗口该Session就会失效,因而Session不能达到长期有效的效果。就算不依赖于Cookie,运用URL地址重写也不能完成,因为假如设置Session的超时时间过长,服务器累积的Session就会越多,越容易导致内存溢出。

    6. 服务器的压力不同

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

    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仅在它所在的域名内有效。
  • 相关阅读:
    [转贴] 2016一月12日起.NET 4, 4.5 and 4.5.1 停止安全更新、技术支持 or hotfix
    Windows Azure 入门 -- VS 2015部署 ASP.NET网站(项目) 与 数据库
    [职场]工作多久才能换工作?下一个工作年薪该多高?
    [转贴] ASP.NET -- Web Service (.asmx) & JSON
    ADO.NET #3-1 (GridView + DataReader + SqlCommand)完全手写Code Behind
    File 与 Log #3--动态加入控件,[图片版]访客计数器(用.txt档案来记录)
    小图示优化
    GridView的 PreRender事件与范例--GridView + CheckBox,点选多列资料(复选删除)
    [习题] FindControl 简单练习--GridView + CheckBox,点选多列数据(复选删除)#3 List或数组
    GridView的 PreRender事件与 RowCreated、RowDataBound事件大乱斗
  • 原文地址:https://www.cnblogs.com/vaster/p/9337023.html
Copyright © 2011-2022 走看看