博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP笔记07:http响应详解(禁用缓存设置和文件下载)
阅读量:5017 次
发布时间:2019-06-12

本文共 1200 字,大约阅读时间需要 4 分钟。

演示如何通过Http响应控制页面缓存,在默认情况下,浏览器是会缓存页面的

1.禁用缓存设置

(1).我在...\htdocs\http文件夹,写一个cache.php文件如下:

1 

 

在浏览器中输入地址访问cache.php这个文件,结果如下:

抓包如下:
 
 

 

 

(2)接下来,我们把光标放在地址栏,然后按一下回车键如下:

抓包如下:我根据数据包知道,一旦第一次刷新获取过这个页面,浏览器默认都会缓存这个页面,那么下次再次访问,就在缓存中取这个页面,给用户。

 

 

 

(3).接下来我们来修改这个cache.php文件,如下:

  1. <?php
  2. //通过header来禁止缓存(ajax)
  3. header("Expries: -1");
  4. header("Cache-Control:no_cache");
  5. header("Pragma:no-cache");
  6. echo "hello!cache";
  7. ?>
下面实践一下,验证是不是阻止缓存了,如下:
 
2.文件下载
这里我们定义一个fileDown.php文件:
这个php文件被访问的逻辑图如下:
上面说的fileDown.php文件还是在...\htdocs\http文件夹处,其中代码如下:
  1. <?php
  2. //演示一个图片
  3. $file_name ="B01.jpg";
  4. //打开文件
  5. if(!file_exists($file_name)){
  6. echo "文件不存在";
  7. return;
  8. }
  9. $fp = fopen($file_name,"r");
  10. //获取下载文件的大小
  11. $file_size= filesize($file_name);
  12. //返回的是文件的形式
  13. header("Content-type: application/octet-stream");
  14. //以字节大小进行返回
  15. header("Accept-Ranges:bytes");
  16. //返回文件大小
  17. header("Accept-Length:$file_size");
  18. //这里对应客户端的弹出对话框,对应的文件名
  19. header("Content-Disposition:attachment; filename=".$file_name);
  20. $buffer =1024;
  21. //向客户端回送数据
  22. //这句话用于判断文件是否结束
  23. while(!feof($fp)){
  24. $file_data = fread($fp,$buffer);
  25. //把部分数据回送到浏览器
  26. echo $file_data;
  27. }
  28. fclose($fp);
  29. ?>
在浏览器输入地址访问fileDown.php文件,出现了以下效果:
点击打开下载好的图片如下,显示完好:
 

转载于:https://www.cnblogs.com/hebao0514/p/fc2316538cf7860c025e8b0c553f019d.html

你可能感兴趣的文章
cocos2dx使用lua和protobuf
查看>>
HDOJ 5630 Rikka with Chess
查看>>
netcore2.1 在后台运行一个任务
查看>>
DOCKER 从入门到放弃(五)
查看>>
Python 多线程学习
查看>>
获取NVIDIA显卡的温度
查看>>
Dijkstra算法
查看>>
Deep Learning 9: Performance
查看>>
面试题61 把二叉树打印成多行
查看>>
第二章 Vue快速入门--20 品牌案例-完成品牌列表的添加功能+ 21 品牌案例-根据Id完成品牌的删除...
查看>>
编译安装mysql-5.6.40
查看>>
SGU438_The Glorious Karlutka River =)
查看>>
Codeforces Round #327 (Div. 2)
查看>>
ODAC(V9.5.15) 学习笔记(三)TOraSession(2)
查看>>
SQL中的replace函数
查看>>
java中的类型安全问题-Type safety: Unchecked cast from Object to ...
查看>>
如何解决最后一个尾注引用显示与致谢混为一谈的问题-下
查看>>
css文本样式text、字体样式font
查看>>
python判断图片是否损坏
查看>>
MySQL服务启动:某些服务在未由其他服务或程序使用时将自动停止
查看>>