关于session_cache_expire 的理解
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过一分钟后还是不过期,我的测试代码在下面,希望高手指点是什么原因,多谢!
<?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()."分钟";
?>
另外,浏览器缓存的工作机理是什么?它对静态或动态的内容是如果管理控制的?
关于session_cache_expire 的理解的更多相关文章
- 理解CSS视觉格式化
前面的话 CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...
- 彻底理解AC多模式匹配算法
(本文尤其适合遍览网上的讲解而仍百思不得姐的同学) 一.原理 AC自动机首先将模式组记录为Trie字典树的形式,以节点表示不同状态,边上标以字母表中的字符,表示状态的转移.根节点状态记为0状态,表示起 ...
- 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信
接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...
- node.js学习(三)简单的node程序&&模块简单使用&&commonJS规范&&深入理解模块原理
一.一个简单的node程序 1.新建一个txt文件 2.修改后缀 修改之后会弹出这个,点击"是" 3.运行test.js 源文件 使用node.js运行之后的. 如果该路径下没有该 ...
- 如何一步一步用DDD设计一个电商网站(一)—— 先理解核心概念
一.前言 DDD(领域驱动设计)的一些介绍网上资料很多,这里就不继续描述了.自己使用领域驱动设计摸滚打爬也有2年多的时间,出于对知识的总结和分享,也是对自我理解的一个公开检验,介于博客园这个平 ...
- 学习AOP之透过Spring的Ioc理解Advisor
花了几天时间来学习Spring,突然明白一个问题,就是看书不能让人理解Spring,一方面要结合使用场景,另一方面要阅读源代码,这种方式理解起来事半功倍.那看书有什么用呢?主要还是扩展视野,毕竟书是别 ...
- ThreadLocal简单理解
在java开源项目的代码中看到一个类里ThreadLocal的属性: private static ThreadLocal<Boolean> clientMode = new Thread ...
- JS核心系列:理解 new 的运行机制
和其他高级语言一样 javascript 中也有 new 运算符,我们知道 new 运算符是用来实例化一个类,从而在内存中分配一个实例对象. 但在 javascript 中,万物皆对象,为什么还要通过 ...
- 深入理解JS 执行细节
javascript从定义到执行,JS引擎在实现层做了很多初始化工作,因此在学习JS引擎工作机制之前,我们需要引入几个相关的概念:执行环境栈.全局对象.执行环境.变量对象.活动对象.作用域和作用域链等 ...
随机推荐
- [Windows Azure] Data Management and Business Analytics
http://www.windowsazure.com/en-us/develop/net/fundamentals/cloud-storage/ Managing and analyzing dat ...
- 京东轮播图片的静态页面CSS3
效果图: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...
- Specular Aliasing与Specular Leaking
最近做高质量实时HDR PBR渲染中碰到了2个关键问题,若干思考如下: 问题1: 极高的动态范围HDR+高级BRDF+相对较低的采样率(比方说不考虑子像素的原始分辨率),在这3项因素的综合作用下,Sp ...
- muduo源码分析:组成结构
muduo整体由许多类组成: 这些类之间有一些依赖关系,如下:
- django HttpResponse对象
HttpResponse对象 概述: 作用:给浏览器返回数据 HttpRequest对象是由Django创建的,HttpResponse对象是由程序员创建 用法: 不用模板,直接返回数据 语句示例:r ...
- 6个监控linux资源的快速工具
系统管理员需要对服务器进行监控以确保其正常运行,通过这种方式管理员能够提前发现可能存在的问题并恢复系统,以避免麻烦的出现. Linux上有很多命令来监控不同的系统资源,如CPU使用率.内存使用情况.网 ...
- Windows获取远程Linux局域网内的mysql连接
求:本地Windows7电脑,通过xshell和xftp能够连接远程Linux服务器,但是数据库不在这台服务器上,在Linux服务器的局域网里面: 需要当前本地Windows7电脑能够连接Linux服 ...
- [转]java按指定编码写入和读取文件内容的类
读文件: BufferedReader 从字符输入流中读取文本,缓冲各个字符,从而提供字符.数组和行的高效读取. 可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够大了. 通常,R ...
- [命令]在uboot下查看文件系统的目录结构
在uboot下敲help可以查看该版本的uboot支持哪些命令 ls mmc 1:1 ls mmc 1:2 可以查看mmc设备上对应的文件目录,支持多种文件系统格式,如fat32/ext
- Java编程的逻辑 (75) - 并发容器 - 基于SkipList的Map和Set
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...