面试集锦:盘点session与cookie的区别

2022-10-11 21:28:51 148 0
魁首哥

session与cookie的区别有如下四个方面:

1.存放的位置

cookie保存在客户端,session一般保存在服务器端的文件系统或数据库或mamcache

2.安全性

由于session存放在服务器端,而客户端可以集中采用软、硬件技术保证安全性,所以cookie的安全性较session弱

3.网络传输量

cookie需通过网络实现客户端与服务器端之间的传输,而session保存在服务器端,无需传输

4.生存时间(以设置24分钟为例)

(1)cookie的生命周期是累计的。从创建的时候就开始计时,24分钟后cookie生命周期结束,cookie自动失效

(2)session的生命周期是间隔的,从创建时开始计时,比如在24分钟内(php. ini 默认session的失效时间就是1440s,即24m)没有访问过session(指没有执行含session的文件),那么session信息就自动无效,但如果在24分钟之内,比如第23分钟访问过session,那么它的生命周期将重新开始计算。

【知识拓展】:session的垃圾回收机制gc

在php中,session的回收机制主要依靠三个配置共同实现(在php. ini文件 中),分别是:

  • session.gc_maxlifetime = 1440 设置php session的有效期

  • session.gc_probability = 1 设置gc回收机制的 被除数

  • session.gc_divisor = 100 设置gc回收机制的除数

当某个用户操作session的时候,会使用到session_start(),这时候该函数可能会调用gc,其调用概率是session.gc_probability/session.gc_divisor。为什么不每次都调用垃圾回收机制呢?原因是对于一个网站来说,如果有很多用户访问,回收概率就很大,这样频繁地回收会给服务器带来很大的开销。基本上,如果是大型网站,都建议将session.gc_probability/session.gc_divisor设置的足够小。

收藏
分享
海报
0 条评论
148
上一篇:2020终极版PhpStorm:全面支持PHP8,静态分析器 下一篇:协程与Swoole的原理,相关应用以及适用场景分析

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码