php SESSION时效的问题。关闭浏览器 服务器的 session没有消失,还存在。
SESSION时效的问题。我看书上说,SESSION会在浏览器关闭后自动消失。但是我做了个实验,用户登陆后,产生session,在服务器中可以查看到这个session文件...
SESSION时效的问题。
我看书上说,SESSION会在浏览器关闭后自动消失。
但是我做了个实验,用户登陆后,产生session,在服务器中可以查看到这个session文件,关闭浏览器 这个文件还存在?打开同一网站,然后再重新登录会产生一个新的session。
扩展开来有产生另一个问题:服务器怎么直到用户关闭浏览器了? 展开
我看书上说,SESSION会在浏览器关闭后自动消失。
但是我做了个实验,用户登陆后,产生session,在服务器中可以查看到这个session文件,关闭浏览器 这个文件还存在?打开同一网站,然后再重新登录会产生一个新的session。
扩展开来有产生另一个问题:服务器怎么直到用户关闭浏览器了? 展开
1个回答
展开全部
session会在服务器存在一定时间,php5默认是1440秒。就是说你把网页关闭了这个session还存在服务器里1440秒。
为什么关了浏览器session会生成新的呢,牵扯到一个浏览器的数据传输问题。
新开一个全新的浏览器(IE6下是点击ie图标新开一个窗口),浏览器没有带sessionD这个值(php里名字叫PHPSESSID),服务器就判断这是一个新请求,返回给浏览器一个新的SESSIONID,然后每次刷新或者打开新页面,浏览器会默认把这个SESSIONID传给服务器,这个值在http head里,你用抓包软件可以看到。
服务器接受了这个sessionID,就会知道是哪个SESSION,再取出一系列这个id对应的SESSION值。
为什么关了浏览器session会生成新的呢,牵扯到一个浏览器的数据传输问题。
新开一个全新的浏览器(IE6下是点击ie图标新开一个窗口),浏览器没有带sessionD这个值(php里名字叫PHPSESSID),服务器就判断这是一个新请求,返回给浏览器一个新的SESSIONID,然后每次刷新或者打开新页面,浏览器会默认把这个SESSIONID传给服务器,这个值在http head里,你用抓包软件可以看到。
服务器接受了这个sessionID,就会知道是哪个SESSION,再取出一系列这个id对应的SESSION值。
追问
php.ini里边session.cookie.life_time=0;不就是关闭浏览器删除session吗?可是我的还存在啊。
虽然关闭浏览器会产生心得sessionID,但我可以认为是另一用户在另一台电脑上的操作啊。
服务器如何知道 用户 关闭了浏览器呢?
追答
长时间没有sessionID传过来,比如1440秒,服务器自动杀掉。
session.gc_maxlifetime 才是session生存时间。
不管你是什么用户在什么电脑上操作,服务器默认只认sessionID。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询