标签:
演示如何通过Http响应控制页面缓存,在默认情况下,浏览器是会缓存页面的
1.禁用缓存设置
(1).我在...\htdocs\http文件夹,写一个cache.php文件如下:
<?php
echo "hello!cache";
?>
在浏览器中输入地址访问cache.php这个文件,结果如下:
(2)接下来,我们把光标放在地址栏,然后按一下回车键如下:
抓包如下:我根据数据包知道,一旦第一次刷新获取过这个页面,浏览器默认都会缓存这个页面,那么下次再次访问,就在缓存中取这个页面,给用户。
(3).接下来我们来修改这个cache.php文件,如下:
<?php
//通过header来禁止缓存(ajax)
header("Expries: -1");
header("Cache-Control:no_cache");
header("Pragma:no-cache");
echo "hello!cache";
?>
<?php
//演示一个图片
$file_name ="B01.jpg";
//打开文件
if(!file_exists($file_name)){
echo "文件不存在";
return;
}
$fp = fopen($file_name,"r");
//获取下载文件的大小
$file_size= filesize($file_name);
//返回的是文件的形式
header("Content-type: application/octet-stream");
//以字节大小进行返回
header("Accept-Ranges:bytes");
//返回文件大小
header("Accept-Length:$file_size");
//这里对应客户端的弹出对话框,对应的文件名
header("Content-Disposition:attachment; filename=".$file_name);
$buffer =1024;
//向客户端回送数据
//这句话用于判断文件是否结束
while(!feof($fp)){
$file_data = fread($fp,$buffer);
//把部分数据回送到浏览器
echo $file_data;
}
fclose($fp);
?>
标签:
原文地址:http://www.cnblogs.com/hebao0514/p/fc2316538cf7860c025e8b0c553f019d.html