为了账号安全,请及时绑定邮箱和手机立即绑定

PHP cookie和session

PHP cookie和session

犯罪嫌疑人X 2019-04-10 20:48:52
cookie给了2小时,这两个小时不关你有没有动作,到时间他都会过期,而且session是只要你有动作或刷新页面他都不会过期对吗?对吗,我测了COOKIE是这样的
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超7个赞

首先你要搞明白session、cookie之间的关系。
因为http协议是无状态的,所以2个http请求之间是没有任何联系。
但是很多时候的业务需求是需要知道2个http请求之间是要进行信息共享的,这就是session的由来。
因为http协议是无状态的,所以需要有信息共享的2个http请求中带上一个session标志,通过这个session标志,可以把上个请求的信息在下次请求时获取出来,通常是把session标志存储到cookie中(当然你也可以把这个标志放到url参数中或者放在请求header中)。
因此session过期不过期,完全取决于某个请求时是否有session标志,而这个session标志的相应的session信息是否还在服务器保留。
基于问题回答
cookie给了2小时,这两个小时不关你有没有动作,到时间他都会过期
你说的没错,前提是你没有更改存储在cookie中seesion标志的过期时间
而且session是只要你有动作或刷新页面他都不会过期对吗?
这个更新的服务器存储session信息的时间,即
在服务端session过期时间=上次更新session信息的时间+设置的过期时间
                            
查看完整回答
反对 回复 2019-04-10
?
月关宝盒

TA贡献1772条经验 获得超5个赞

调用session_start方法后,服务器会返回给客户端一个sessionid,客户端(一般是浏览器)会在每一次请求服务器的时候带上这个sessionid,服务器就是根据这个sessiond来找到对应的回话保存记录的。
所以“session是只要你有动作或刷新页面他都不会过期”
这个不全对,虽然看上去是这样。但是如果客户端清除了sessionid(例如关闭浏览器),或者服务器清除掉了对应的session回话记录(在设置的过期时间内没有接收到请求),都会导致session过期
                            
查看完整回答
反对 回复 2019-04-10
  • 2 回答
  • 0 关注
  • 423 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号