php session变量相关问题
以下假设全是在默认设置下。这问题纠结很久,特此求助!!!1;session变量是保存在服务器内存中的么?若不重复请求服务器,默认保存时间是多久呢?2;如果不设置sessi...
以下假设全是在默认设置下。这问题纠结很久,特此求助!!!
1;session变量是保存在服务器内存中的么?若不重复请求服务器,默认保存时间是多久呢?
2;如果不设置session的lifetime,关闭浏览器后,没有再请求该页,服务器能否或通过什么方式知道我已经关闭了浏览器,从而该销毁该变量?
3;如果不知道已经关闭了浏览器,那session变量岂不要一直保留,加重服务器压力。 展开
1;session变量是保存在服务器内存中的么?若不重复请求服务器,默认保存时间是多久呢?
2;如果不设置session的lifetime,关闭浏览器后,没有再请求该页,服务器能否或通过什么方式知道我已经关闭了浏览器,从而该销毁该变量?
3;如果不知道已经关闭了浏览器,那session变量岂不要一直保留,加重服务器压力。 展开
展开全部
1、session以文件形式,保存在服务器里。具体路径是php.ini里面的session.save_path所指定的。默认生存周期是1440秒。
2、不设置session的lifetime,则按默认的生存周期计算。没有新请求,则根据达到生存周期后自动消毁。服务器无法知道你已经关闭了浏览器,只能按时间来计算。
3、达到生存周期的就消毁,不会一直保留在服务器。
2、不设置session的lifetime,则按默认的生存周期计算。没有新请求,则根据达到生存周期后自动消毁。服务器无法知道你已经关闭了浏览器,只能按时间来计算。
3、达到生存周期的就消毁,不会一直保留在服务器。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.保存在哪里是在这里定义的 Php.ini
[Session]
session.save_handler = files 这里是文件的方式,你可以设置成user ,使用memcache保存session等各种手段 或者在代码里动态设置 比如以数据库存储逇方式 使用
session_set_save_handler
设置session的open close read write destory gc 的具体使用方式
session保存时间是在这里定义的
session.cookie_lifetime = 0 这里是永久保存 直到你关闭浏览器 你可以设置session时间
2 和3 :还有 在php.ini中 session.gc_probability = 1 session.gc_divisor = 1000 这是垃圾回收机制 这2个的比率 代表了 垃圾回收的几率 就是别人访问你的网站 服务器就有1/1000的几率 删除过期session
[Session]
session.save_handler = files 这里是文件的方式,你可以设置成user ,使用memcache保存session等各种手段 或者在代码里动态设置 比如以数据库存储逇方式 使用
session_set_save_handler
设置session的open close read write destory gc 的具体使用方式
session保存时间是在这里定义的
session.cookie_lifetime = 0 这里是永久保存 直到你关闭浏览器 你可以设置session时间
2 和3 :还有 在php.ini中 session.gc_probability = 1 session.gc_divisor = 1000 这是垃圾回收机制 这2个的比率 代表了 垃圾回收的几率 就是别人访问你的网站 服务器就有1/1000的几率 删除过期session
追问
session.cookie_lifetime = 0 这里是永久保存 直到你关闭浏览器
1;如果为一直不刷新浏览器,就那样保持开着,那就一直保存,这为明白。
2;但是如果我关闭了浏览器,不再请求,服务器怎么知道我关闭了浏览器,它不知道,还永久保存,如果一直这样,服务器不早晚要爆了。
追答
session.gc_maxlifetime = 1440 超过这个时间后 session就会被标记为垃圾
虽然服务器里面有过期的session 但是只要别人继续访问你的网站,不管什么页面 都有1/1000的几率 触发这个机制 会删除 所有标记为垃圾的session
所有这个 垃圾回收的 比率 要看情况设置 访问量大 就要设置的小 访问量小的话 就要设置大1点 服务器比如apache 与你浏览器直接 其实每隔一段时间是在 通讯的 ,关闭之后, 那么2者的通讯就会断开,此次的session 当超过session.gc_maxlifetime 就会失效了 就会被 标记垃圾标志
上面有个 session的生存时间 这里的 垃圾标记时间 是2个概念 比如session生存时间到了 那么服务器不会使用它 ,它也不会被标记为垃圾, 当从他失效那一刻起,过了gc_maxlifetime之后 他会被标记为垃圾 ,此时还不会被删除 , 只有当 触发垃圾回收机制时 才会被删除
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询