PHP Squid中可缓存的动态网页设计

当然,前提要先打开CDN中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成If-Modified-Since .所以我们写程序主要是对If-Modified-Since控制就好了.记的,缓存系统架构中计中最好是后端来控制,所以最好的方法是程序来管理过期.呵,我只会php,就用php写一个,别的程序也是一样
见我下面的程序,呵呵,5分钟过期.
<?php
$headers = apache_request_headers();
$client_time = (isset($headers['If-Modified-Since']) ? strtotime($headers['If-Modified-Since']) : 0);
$now=gmmktime();
$now_list=gmmktime()-60*5;
if ($client_time<$now and $client_time >$now_list){
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $client_time).' GMT', true, 304);
exit(0);
}else{
header('Last-Modified: ‘.gmdate('D, d M Y H:i:s', $now).' GMT', true, 200);
}
?>

(0)

相关推荐

  • php实现网页缓存的工具类分享

    php程序在抵抗大流量访问的时候动态网站往往都是难以招架,所以要引入缓存机制,一般情况下有两种类型缓存 一.文件缓存 二.数据查询结果缓存,使用内存来实现高速缓存 本例主要使用文件缓存. 主要原理使用缓存函数来存储网页显示结果,如果在规定时间里再次调用则可以加载缓存文件. 工具类代码: // 文件缓存类 class Cache { /** * $dir : 缓存文件存放目录 * $lifetime : 缓存文件有效期,单位为秒 * $cacheid : 缓存文件路径,包含文件名 * $ext :

  • PHP禁止页面缓存的代码

    核心代码: 复制代码 代码如下: header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pramga: no-cac

  • php缓存技术介绍

    缓存是指临时文件交换区,电脑把最常用的文件从存储器里提出来临时放在缓存里,就像把工具和材料搬上工作台一样,这样会比用时现去仓库取更方便.因为缓存往往使用的是RAM(断电即掉的非永久储存),所以在忙完后还是会把文件送到硬盘等存储器里永久存储.电脑里最大的缓存就是内存条了,最快的是CPU上镶的L1和L2缓存,显卡的显存是给GPU用的缓存,硬盘上也有16M或者32M的缓存.千万不能把缓存理解成一个东西,它是一种处理方式的统称! 在WEB开发中用来应付高流量最有效的办法就是用缓存技术,能有效的提高服务器

  • PHP使用header()输出图片缓存实例

    本文实例讲述了PHP使用header()输出图片缓存的方法.分享给大家供大家参考.具体分析如下: 在我们生成验证码时会需要直接输入图片,通常会使用到header("Content-type: image/jpeg");来实现,这里就来简单介绍一下. 很多开发中,我们试图使用header("Content-type: image/jpeg");来 输出图片,试图用一些php的图像处理技术,让输出图片更加智能和动感.但我们常常遇到新的问题,除非你规定不同的URL结构,并

  • 为PHP5.4开启Zend OPCode缓存

    编译步骤: 复制代码 代码如下: git clone git://github.com/zend-dev/ZendOptimizerPlus.git cd ZendOptimizerPlus $PHP_DIR/bin/phpize ./configure \ --with-php-config=$PHP_DIR/bin/php-config make && make install 配置步骤:在 php.ini 内增加zend_extension=/...full path.../opca

  • ThinkPHP实现一键清除缓存方法

    很多的开源cms系统都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新,对此,我们就来实现一个ThinkPHP的清理缓存的功能.代码如下: ThinkPHP后台执行的代码: //获取要清楚的目录和目录所在的绝对路径 public function cache(){ ////前台用ajax get方式进行提交的,这里是先判断一下 if($_POST['type']){ //得到传递过来的值 $type=$_POST['type']; //将

  • ThinkPHP缓存方法S()概述

    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象.S()缓存方法支持有效期,又称动态缓存方法,使用示例如下: 复制代码 代码如下: // 使用data标识缓存$Data数据 S('data',$Data);  //前面的是缓存标示,后面的是缓存的数据 复制代码 代码如下: // 缓存$Data数据3600秒 S('data',$Data,3600); 复制代码 代码如下: // 删除缓存数据 S('data',NULL);  //第一个参数时缓存的标识名 复制代码 代码如

  • thinkphp缓存技术详解

    本文详细分析了thinkphp的缓存技术.分享给大家供大家参考.具体分析如下: 如果没有缓存的网站是百万级或者千万级的访问量,会给数据库或者服务器造成很大的压力,通过缓存,大幅减少服务器和数据库的负荷,假如我们把读取数据的过程分为三个层,第一个是访问层,第一个是缓存层,第三个是数据库存取层,如果没有缓存层,访问层是直接从数据库存取层读取数据,而设置缓存后,访问层不再是直接在数据库存取层读取,而是从缓存层读取数据. 我们做个简单的对比,假设一个页面,在一个小时可被访问100万次,如果这个页面每次被

  • PHP 输出缓存详解

    输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用. 我们先举一个简单的例子,让大家对Output Control有一个大致的印象: Example 1. 复制代码 代码如下: <?php ob_start(); //打开缓冲区 echo \"Hellon\"; //输出 header("location:index.php"); //把浏览器重定向到in

  • PHP数据缓存技术

    数据缓存是web开发中常用的一种性能优化方法.目前主要文件缓存或者数据库缓存两种形式,数据库缓存数据库不是什么不可能的事情,的确也是很好很重要的.我认为传统数据库主要是从业务层.模块设计等方面来考虑的,而缓存数据库主要是从实现层来设计的,主要是为了缓存常用的多表查询之类的.这里主要将的是文件缓存,网上很多资料了,这里我转载了一些原理资料.   Cache是"以空间换时间"策略的典型应用模式,是提高系统性能的一种重要方法.缓存的使用在大访问量的情况下能够极大的减少对数据库操作的次数,明显

  • PHP下利用header()函数设置浏览器缓存的代码

    这涉及到4种头标类型: Last-Modified(最后修改时间); Expires(有效期限); Pragma(编译指示): Cache-Control(缓存控制); 前三个头标属于HTTP1.0标准.头标Last-Modified使用UTC日期时间值.如果缓存系统发现Last-Modified值比页面缓存版本的更接 近当前时间,他就知道应该使用来自服务器的新版本. Expires 表明了缓存版本何时应该过期(格林威治标准时间).把它设置为一个以前的时间就会强制使用服务器上的页面. Pragm

随机推荐