cookie和session区别

发布时间 2023-07-05 20:17:53作者: 风筝上的猫

什么是Session?

服务器会给每个用户创建一个Session对象,用来存储特定用户会话所需要的属性及配置信息。
session代表的是一次对话,当浏览器第一次访问服务器时,服务会创建一个session对象,
它携带着用户的信息(如登录信息),用户可以在此网站下的所有web页跳转。当会话过期
或被放弃,服务器才会终止该会话。

不同浏览器访问同一网址时(例如知乎),即使操作者是同一人,但知乎仍会创建两个session
对象,相当于模拟两个客户端。

session与cookie的主要区别在于,cookie主要解决http请求没有状态的问题,且通过设
置cookie来进行身份验证,但值都是明文;而session相当于给cookie做了个加密处理,
比cookie更安全。

 

cookie和session区别

cookie与session区别有:
1、对象不同;
2、存储数据大小不同;
3、生命周期不同;
4、存储位置不同;
5、数据类型不同;
6、安全性不同。其中,定义不同是指cookie是针对每个网站的信息,每个网站只能对应一个,而session是针对每个用户的,只有客户端才能访问。

1、对象不同

cookie:是针对每个网站的信息,每个网站只能对应一个,其他网站无法访问,这个文件保存在客户端,每次您拨打相应网站,浏览器都会查找该网站的 cookies,如果有,则会将该文件发送出去。cookies文件的内容大致上包括了诸如用户名、密码、设置等信息。
session:是针对每个用户的,只有客户端才能访问,程序为该客户添加一个 session。session中主要保存用户的登录信息、操作信息等等。此 session将在用户访问结束后自动消失(如果也是超时)。

2、存储数据大小不同

cookie:一个 cookie存储的数据不超过3K。
session:session存储在服务器上可以任意存储数据。当 session存储数据太多时,服务器可选择进行清理。

3、生命周期不同

cookie:cookie的生命周期当浏览器关闭的时候就消亡了,cookie的生命周期是累计的,从创建时就开始计时,30min后cookie生命周期结束。
session:session的生命周期是间隔的,从创建时开始计时如在30min内没有访问session,那么session生命周期就被销毁。

4、存储位置不同

cookie:cookie数据保存在客户端。
session:session数据保存在服务器端。

5、数据类型不同

两者都是key-value结构,但针对value的类型是有差异的。
cookie:value只能是字符串类型。
session:value是object类型。

6、安全性不同

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