PHP cookie和session

php中文网
发布: 2016-06-06 20:33:48
原创
1325人浏览过

cookie给了2小时,这两个小时不关你有没有动作,到时间他都会过期,而且session是只要你有动作或刷新页面他都不会过期对吗?对吗,我测了cookie是这样的

回复内容:

cookie给了2小时,这两个小时不关你有没有动作,到时间他都会过期,而且session是只要你有动作或刷新页面他都不会过期对吗?对吗,我测了cookie是这样的

首先你要搞明白 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是只要你有动作或刷新页面他都不会过期对吗?

立即学习PHP免费学习笔记(深入)”;

国洋商务通
国洋商务通

Gyb2b V1.01免费版可终身使用,是一款功能强大的B2B电子商务应用软件。该软件不仅更新和修改了V1.0相关功能,更是采用了目前互联网上最流行的LAMP组合(Linux+Apache+Mysql+PHP)开发完成,模板技术实现了界面与代码的有效分离,用户可以快速地在此基础上编译模板;提供B2B电子商务应用最常见的求购、供应、商品、公司库、行业资讯、商圈、资信认证、在线交易、交易评分、留言、搜

国洋商务通 0
查看详情 国洋商务通

这个更新的服务器存储session信息的时间,即

<code>在服务端session过期时间 = 上次更新session信息的时间 + 设置的过期时间
</code>
登录后复制

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

所谓session也是服务端生成一个id然后作为cookie存储在用户本地,服务端这个cookie作为一个唯一值key存储在数据库。

session会自己处理过期时间的问题,比如只要有请求,自动重新设置一次cookie(过期时间就又延后了好多)

相关标签:
php
PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号