PHP笔记07:http响应详解(禁用缓存设置和文件下载)
演示如何通过Http响应控制页面缓存,在默认情况下,浏览器是会缓存页面的
1.禁用缓存设置
(1).我在...\htdocs\http文件夹,写一个cache.php文件如下:
1 <?php 2 echo "hello!cache"; 3 ?>
在浏览器中输入地址访问cache.php这个文件,结果如下:

抓包如下:
(2)接下来,我们把光标放在地址栏,然后按一下回车键如下:
抓包如下:我根据数据包知道,一旦第一次刷新获取过这个页面,浏览器默认都会缓存这个页面,那么下次再次访问,就在缓存中取这个页面,给用户。
(3).接下来我们来修改这个cache.php文件,如下:
<?php//通过header来禁止缓存(ajax)header("Expries: -1");header("Cache-Control:no_cache");header("Pragma:no-cache");echo "hello!cache";?>
下面实践一下,验证是不是阻止缓存了,如下:
2.文件下载
这里我们定义一个fileDown.php文件:
这个php文件被访问的逻辑图如下:
上面说的fileDown.php文件还是在...\htdocs\http文件夹处,其中代码如下:
<?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);?>
在浏览器输入地址访问fileDown.php文件,出现了以下效果:







浙公网安备 33010602011771号