标签存档: session

PHP cookie和session的用法汇编,原理探究

1. PHP的COOKIE
cookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。
按http协议的规定,cookie必需在http响应返回数据的头信息里发送, 因此php的 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似。不过如果启用的php缓冲的话(void ob_start(void);),可以打破该限制,参看这里:PHP缓冲机制
1.1 设置cookie:
阅读全文——共7243字

PHP session回收机制及php.ini session生命期gc_maxlifetime配置/gc_maxlifetime无效

由于PHP的工作机制,它并没有一个daemon线程,来定时地扫描session信息并判断其是否失效。当一个有效请求发生时,PHP会根据全局变量 session.gc_probability/session.gc_divisor(同样可以通过php.ini或者ini_set()函数来修改) 的值,来决定是否启动一个GC(Garbage Collector)。默认情况下,session.gc_probability = 1,session.gc_divisor =100,也就是说有1%的可能性会启动GC。
GC的工作,就是扫描所有的session信息, 用当前时间减去session的最后修改时间(modified date),同session.gc_maxlifetime参数进行比较,如果生存时间已经超过gc_maxlifetime,就把该session删 除。
阅读全文——共1162字

PHP中如何保持SESSION不过期,原理及方案

PHP中如何保持SESSION以及由此引发的一些思考  最近的一个项目,里面有一个比较大的表单,用户完成它需要很多时间,很多用户花了千辛万苦完成之后,一提交发现SESSION过期,系统退出了,所以引起 了研究如何设置SESSION以及保持SESSION在线的需要,下面是一些心得体会。
什么是SESSION?
按照WIKI的解释,SESSION是存在于两个通信设备间的交互信息,在某一时间建立,经过一定的时间后失效。常见的SESSION有:TCP SESSION、WEB SESSION(HTTP SESSION)、LOGIN SESSION等。
根据OSI模型中,会话实现的位置不同,SESSION主要分为几种,一种是应用层会话,包括WEB SESSION(HTTP SESSION)和telnet远程登录session;会话层实现的,包括Session Initiation Protocol(SIP)和Internet Phone Call;在传输层实现的有TCP SESSION。
阅读全文——共4376字

PHP session过期机制和配置/session回收

使用PHP session时会遇到明明超过了session过期时间,但session依然完好无损的活着,让人头大。其实仔细看一下php.ini关于PHP session回收机制就一目了然了。
session 回收机制:
PHP采用Garbage Collection process对过期session进行回收,然而并不是每次session建立时,都能够唤起 ‘garbage collection’ process ,gc是按照一定概率启动的。这主要是出于对服务器性能方面的考虑,每个session都触发gc,浏览量大的话,服务器吃不消,然而按照一定概率开启 gc,当流览量大的时候,session过期机制能够正常运行,而且服务器效率得到节省。细节应该都是多年的经验积累得出的。
阅读全文——共2024字