0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

cookie和session区别

工程师 ? 来源:陈翠 ? 2018-12-12 15:48 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

cookie和session区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上。

2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗考虑到安全应当使用session。

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能考虑到减轻服务器性能方面,应当使用COOKIE。

4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

cookie和session机制上的区别

1、存取方式的不同

Cookie中只能保管ASCII字符串,假如需求存取Unicode字符或者二进制数据,需求先进行编码。Cookie中也不能直接存取Java对象。若要存储略微复杂的信息,运用Cookie是比拟艰难的。

而Session中能够存取任何类型的数据,包括而不限于String、Integer、List、Map等。Session中也能够直接保管JavaBean乃至任何Java类,对象等,运用起来十分便当。能够把Session看做是一个Java容器类。

2、隐私策略的不同

Cookie存储在客户端阅读器中,对客户端是可见的,客户端的一些程序可能会窥探、复制以至修正Cookie中的内容。而Session存储在服务器上,对客户端是透明的,不存在敏感信息泄露的风险。

假如选用Cookie,比较好的方法是,敏感的信息如账号密码等尽量不要写到Cookie中。最好是像Google、Baidu那样将Cookie信息加密,提交到服务器后再进行解密,保证Cookie中的信息只要本人能读得懂。而假如选择Session就省事多了,反正是放在服务器上,Session里任何隐私都能够有效的保护。

3、有效期上的不同

使用过Google的人都晓得,假如登录过Google,则Google的登录信息长期有效。用户不用每次访问都重新登录,Google会持久地记载该用户的登录信息。要到达这种效果,运用Cookie会是比较好的选择。只需要设置Cookie的过期时间属性为一个很大很大的数字。

由于Session依赖于名为JSESSIONID的Cookie,而CookieJSESSIONID的过期时间默许为–1,只需关闭了阅读器该Session就会失效,因而Session不能完成信息永世有效的效果。运用URL地址重写也不能完成。而且假如设置Session的超时时间过长,服务器累计的Session就会越多,越容易招致内存溢出。

4、服务器压力的不同

Session是保管在服务器端的,每个用户都会产生一个Session。假如并发访问的用户十分多,会产生十分多的Session,耗费大量的内存。因而像Google、Baidu、Sina这样并发访问量极高的网站,是不太可能运用Session来追踪客户会话的。

而Cookie保管在客户端,不占用服务器资源。假如并发阅读的用户十分多,Cookie是很好的选择。关于Google、Baidu、Sina来说,Cookie或许是唯一的选择。

5、浏览器支持的不同

Cookie是需要客户端浏览器支持的。假如客户端禁用了Cookie,或者不支持Cookie,则会话跟踪会失效。关于WAP上的应用,常规的Cookie就派不上用场了。

假如客户端浏览器不支持Cookie,需要运用Session以及URL地址重写。需要注意的是一切的用到Session程序的URL都要进行URL地址重写,否则Session会话跟踪还会失效。关于WAP应用来说,Session+URL地址重写或许是它唯一的选择。

假如客户端支持Cookie,则Cookie既能够设为本浏览器窗口以及子窗口内有效(把过期时间设为–1),也能够设为一切阅读器窗口内有效(把过期时间设为某个大于0的整数)。但Session只能在本阅读器窗口以及其子窗口内有效。假如两个浏览器窗口互不相干,它们将运用两个不同的Session。(IE8下不同窗口Session相干)

6、跨域支持上的不同

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

仅运用Cookie或者仅运用Session可能完成不了理想的效果。这时应该尝试一下同时运用Cookie与Session。Cookie与Session的搭配运用在实践项目中会完成很多意想不到的效果。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Cookie
    +关注

    关注

    0

    文章

    30

    浏览量

    10639
  • Session
    +关注

    关注

    0

    文章

    14

    浏览量

    10179
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    VGA和DP的具体区别

    VGA和DP是两种常见的显示接口,它们在设计、性能和应用方面有显著区别
    的头像 发表于 05-14 16:36 ?1336次阅读

    GD32与STM32有什么区别

    电子发烧友网站提供《GD32与STM32有什么区别.docx》资料免费下载
    发表于 04-03 17:27 ?0次下载

    私有云和公有云有什么区别

    私有云和公有云在多个方面存在显著的区别,以下是具体的比较,主机推荐小编为您整理发布私有云和公有云有什么区别
    的头像 发表于 02-20 10:38 ?852次阅读

    ads1258 IRTCR和IRTCT的区别是什么?

    请教:ads1258 IRTCR和IRTCT的区别在哪?手册里没看明白,TCR和TCRG4的区别应该是有铅和无铅。多谢
    发表于 01-10 10:23

    地埋光缆与架空光缆的区别

    地埋光缆与架空光缆在多个方面存在显著差异,以下是对两者区别的详细阐述。
    的头像 发表于 01-07 15:47 ?1907次阅读

    HTTP 和 HTTPS 的区别

    在互联网时代,数据传输安全变得越来越重要。HTTP 和 HTTPS 是两种广泛使用的网络协议,它们在数据传输方面扮演着关键角色。尽管它们的名字相似,但它们在安全性和用途上有着显著的区别。 HTTP
    的头像 发表于 12-30 09:19 ?1451次阅读

    FCCSP与FCBGA都是倒装有什么区别

    本文简单介绍了倒装芯片球栅阵列封装与倒装芯片级封装的概念与区别。 FCCSP与FCBGA都是倒装,怎么区分?有什么区别
    的头像 发表于 11-16 11:48 ?4553次阅读
    FCCSP与FCBGA都是倒装有什么<b class='flag-5'>区别</b>

    输入和输出电压的区别

    电子发烧友网站提供《输入和输出电压的区别.pdf》资料免费下载
    发表于 10-24 09:20 ?0次下载
    输入和输出电压的<b class='flag-5'>区别</b>

    MIPI和LVDS显示屏的区别

    MIPI和LVDS显示屏的区别
    的头像 发表于 09-23 10:02 ?4722次阅读

    功放和运放到底是什么区别

    想请问一下功放和运放到底是什么区别,感觉只要接一个小负载,运放的输出电流也可以很大啊?到底有什么区别
    发表于 09-10 07:00

    交叉导轨和直线导轨的区别

    交叉导轨和直线导轨的区别
    的头像 发表于 09-02 10:14 ?1025次阅读
    交叉导轨和直线导轨的<b class='flag-5'>区别</b>

    简述功放和音响的区别

    功放和音响在音频系统中扮演着不同的角色,它们之间存在着明显的区别。以下将从本质、配套设备、功能、实用性、价格等多个方面详细阐述功放和音响的区别
    的头像 发表于 08-22 11:46 ?4700次阅读

    A类和B类功放有什么区别

    A类功放(甲类功放)与B类功放(乙类功放)在音频放大领域具有显著的区别,这些区别主要体现在工作原理、音质表现、效率、散热以及成本等多个方面。以下是对A类和B类功放区别的详细介绍。
    的头像 发表于 08-22 11:34 ?3592次阅读

    请问LM2902与LM2902KV的区别是否只有供电电压的区别

    请问下LM2902与LM2902KV的区别是否只有供电电压的区别?LM2904与LM2904V也是电压的区别
    发表于 08-22 06:20

    typedef struct和直接struct的区别

    在C语言中, typedef 和 struct 是两种不同的关键字,它们在定义和使用上有着明显的区别。 typedef struct 和直接 struct 在 C 语言中用于定义结构体类型,但它们在
    的头像 发表于 08-20 10:58 ?3728次阅读