cookie和session的区别

作者: 8fda73aa8a1f | 来源:发表于2016-03-11 07:20 被阅读250次

    在网站开发中,对于存储和记忆有cookie和session两种方式,对于前端开发工程师来说,使用session的情况并不多,大多数前端前端开发工程师可能更了解cookie,然而,熟悉后端的前端程序员也了解session,session是服务器端的存储信息机制。既然都是用来存储信息的,那为何会分为两种呢?我还是那句话:存在即合理。下面我就简单描述一下二者的区别,以及二者的安全性到底谁更强一点。

    区别:

    1、cookie是将数据存放在客户端内存或者硬盘中,而session是将数据存放在服务器的硬盘中。

    2、cookie有数量和大小的限制,但个cookie一般不超过4k,超过这个大小则会无法存储;cookie在存储的数量上也有限制,大部分浏览器都限制一个站点最多保存20个cookie。session却没有限制。

    3、从性能方面来考虑,我们应该选择cookie,因为session会在一段时间内保存在服务器上,当访问量较大时,会损耗服务器的性能。

    4、当对cookie设置了时间限制,那么,客户端会根据cookie里面设置的时间是否删除此记录。对于session而言,关闭浏览器就意味着此次访问的结束,session保存的记录也随之消失。

    安全性:

    1、二者的安全性有区别,如果安全性相同,则二者就失去了同时存在的必要性了。

    2、session的sessionID是放在cookie里,要想功破session的话,第一要功破cookie。功破cookie后,你要得到 sessionID,sessionID是要有人登录,或者启动session_start才会有,你不知道什么时候会有人登录

    3、第二,sessionID是加密的,第二次session_start的时候,前一次的sessionID就失效了,session过期时sessionid也会失效,想在短时间内功破加了密的 sessionID很难。session是针对某一次通信而言,会话结束session也就随着消失了,而真正的cookie存在于客户端硬盘上的一个文本文件,显然session是更安全的。

    而然,对于前端开发者而言,我们大多数使用的cookie,在前端开发中,我们只要游刃有余的使用cookie存储数据就可以了,不必考虑到session存储。

    我是年轻大叔

    罗辑思维前端开发工程师,个人微信公众号:xuebing_wxb

    相关文章

      网友评论

      • young_dreamer:小白有个问题希望作者帮忙解答,即使sessionID在cookie中是加密的,作为中间人获取到加密过的ID发给server也可以吧?毕竟解密工作是server的事情

      本文标题:cookie和session的区别

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