关于session_cache_expire 的理解
2015-10-22 16:50
447 查看
session_cache_limiter,它是session在客户端的缓存方式,有nocache,private,private_no_expire,publice主这几种。
cache是属于浏览器的特性,它决定你浏览网页的缓存方式,没有缓存的情况会使你按浏览的“后退”键时提示要你更新连接,之前的内容就没有了,比如你填入的表单信息,都被丢失。
通过header("Cache-Control: no-store, no-cache, must-revalidate");函数也一样达到效果。
然而,session的处理机制里,就强制自动调用了header函数设置cache,这个置就由php.ini中的缺省值session.cache_limiter值或由session_cache_limiter函数设定所取代。
session_cache_limiter内的几个参数意义是:
nocache:当然是不缓存(比如:表单信息被清除),但公共变量可以缓存
private:私有方式缓存(比如:表单信息被保留,但在生存期内有效)
private_no_cache:私有方式但不过期(表单信息被保留)
publice:公有方式,(表单信息也被保留)
它们之间的具体区别,我还不是太清楚,可以区别的是除nocache外其它的都可以缓存,private方式还受生存期影响,这个生存期应该是由session.cache_expire给定,它在php.ini中设置或session_cache_expire函数设置,缺省是180分钟。
不过,我做过试验,设置session.cache_expire置为1分钟,但实际情况不起作用,cache过一分钟后还是不过期,我的测试代码在下面,希望高手指点是什么原因,多谢!
另外,浏览器缓存的工作机理是什么?它对静态或动态的内容是如果管理控制的?
cache是属于浏览器的特性,它决定你浏览网页的缓存方式,没有缓存的情况会使你按浏览的“后退”键时提示要你更新连接,之前的内容就没有了,比如你填入的表单信息,都被丢失。
通过header("Cache-Control: no-store, no-cache, must-revalidate");函数也一样达到效果。
然而,session的处理机制里,就强制自动调用了header函数设置cache,这个置就由php.ini中的缺省值session.cache_limiter值或由session_cache_limiter函数设定所取代。
session_cache_limiter内的几个参数意义是:
nocache:当然是不缓存(比如:表单信息被清除),但公共变量可以缓存
private:私有方式缓存(比如:表单信息被保留,但在生存期内有效)
private_no_cache:私有方式但不过期(表单信息被保留)
publice:公有方式,(表单信息也被保留)
它们之间的具体区别,我还不是太清楚,可以区别的是除nocache外其它的都可以缓存,private方式还受生存期影响,这个生存期应该是由session.cache_expire给定,它在php.ini中设置或session_cache_expire函数设置,缺省是180分钟。
不过,我做过试验,设置session.cache_expire置为1分钟,但实际情况不起作用,cache过一分钟后还是不过期,我的测试代码在下面,希望高手指点是什么原因,多谢!
<?PHP if (isset($_POST['username'])) { $sess_lim = array("none","nocache","private","private_no_expire","public"); //session_cache_expire(1); //session_cache_limiter( $sess_lim[2] ); echo "sess_lim:".$sess_lim[2]; session_cache_limiter('private'); session_cache_expire(1); $cache_expire = session_cache_expire(); session_start(); $_SESSION["username"] = $_POST['username']; ++$_SESSION["count"] ; echo "<pre>"; print_r($_SESSION); echo "</pre>"; echo "</ p></ br>"; echo 'sessID:'.session_id(); }; ?> <form action="" method="post"> <input type="text" name="username" value="<?php echo $_SESSION['username']?>"> <input type="submit" name="Submit" value="提交"> </form> </ br> <?PHP //phpinfo(); echo "expire:".session_cache_expire()."分钟"; ?>
另外,浏览器缓存的工作机理是什么?它对静态或动态的内容是如果管理控制的?
相关文章推荐
- Android Studio 快捷键大全
- 以太网帧结构
- matlab 基础知识
- 浅析StackTrace
- elasticsearch elk资料
- HDU2473 Junk-Mail Filter【并查集删点】
- 安卓app优化
- iOS 支付宝 下载路径
- 6.数据结构之通用栈(链表实现)
- c++的引用类型
- mybatis中对logback.xml的使用详解
- Gradle笔记——Gradle的简介与安装
- Android字符串资源及其格式化
- CodeIgniter 下引入ORM Doctrine
- Linux服务器应用实战——服务环境快速搭建
- 将Hadoop 2.6.0源码导入到Eclipse
- 使用jQuery解析JSON数据
- mysql left( right ) join使用on 与where 筛选的差异
- 获取服务器路径的问题
- 中缀表达式转化为后缀表达式,并计算后缀表达式