php笔记07:http响应详解(禁用缓存设置和文件下载)
演示如何通过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);?>
php笔记07:http响应详解(禁用缓存设置和文件下载)的更多相关文章
- 【山外笔记-数据库】Memcached详解教程
本文打印版文档下载地址 [山外笔记-数据库]Memcached详解教程-打印版.pdf 一.Memcached数据库概述 1.Memcached简介 (1)Memcached是一个自由开源的,高性能, ...
- IP2——IP地址和子网划分学习笔记之《子网掩码详解》
2018-05-04 16:21:21 在学习掌握了前面的<进制计数><IP地址详解>这两部分知识后,要学习子网划分,首先就要必须知道子网掩码,只有掌握了子网掩码这部分内容 ...
- Cloud Alibabab笔记问世,全网详解仅此一份手慢无
转: Cloud Alibabab笔记问世,全网详解仅此一份手慢无 什么是Spring cloud alibaba Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案, ...
- 详解浏览器缓存机制与Apache设置缓存
一.详解浏览器缓存机制 对于,如何说明缓存机制,在网络上找到了两张图,个人认为思路是比较清晰的.总结时,上图. 这里需要注意的有两点: 1.Last-Modified.Etag是响应头里的数据 2.I ...
- 浏览器 HTTP 协议缓存机制详解--网络缓存决策机制流程图
1.缓存的分类 2.浏览器缓存机制详解 2.1 HTML Meta标签控制缓存 2.2 HTTP头信息控制缓存 2.2.1 浏览器请求流程 2.2.2 几个重要概念解释 3.用户行为与缓存 4.Ref ...
- CDN学习笔记二(技术详解)
一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同 ...
- 笔记整理--HTTP Header 详解
HTTP Header 详解 2013/09/21 | 分类: IT技术 | 0 条评论 | 标签: HTTP 分享到:36 原文出处: zcmhi HTTP(HyperTextTransferPro ...
- MyBatis学习笔记2--配置环境详解
1.MyBatis-config.xml详解 一个完整的配置文件如下所示 <configuration> <!-- <properties resource="jdb ...
- 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析
这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处 ...
随机推荐
- Linux网络地址转换分析
Linux网络地址转换分析 地址转换用来改变源/目的端口,是netfilter的一部分,也是通过hook点上注册相应的结构来工作. Nat注册的hook点和conntrack相同,只是优先级不同,数据 ...
- Layout Resource官方教程(1)简介
Layout Resource SEE ALSO Layouts A layout resource defines the architecture for the UI in an Activit ...
- poj2723
把每对钥匙看做一个变量,那两个钥匙看做他的两个状态 每一个开门的要求就是一个条件(xi or xj) 很显然有了2sat的基本要素 2sat是一个判定性问题,而这题求最多能过几个门: 不难想到二分答案 ...
- BZOJ_1012_[JSOI2008]_最大数maxnumber_(线段树/树状数组+RMQ)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1012 两种操作: 1.求序列末尾n个数中的最大值. 2.在序列末尾插入一个数. 分析 线段树求 ...
- Azure 媒体服务支持 DASH 实时传送流
Kilroy Hughes Azure媒体服务数字媒体架构师 本文重点介绍 Azure 媒体服务支持的 DASH 实时传送流功能,同时阐述如何利用这些功能将实时和点播自适应流传送至 Web 浏览器 ...
- jquery的小插件(按钮抖动)——衍生QQ窗口抖动
1.抖动的按钮 效果预览:http://runjs.cn/detail/tyx8dbag <script type="text/javascript"> //shake ...
- FZU2235 国王的出游 水题
因为只有1e5个点,所以直接离散化bfs就好 #include <cstdio> #include <cstring> #include <queue> #incl ...
- 浅谈PetShop之使用存储过程与PLSQL批量处理(附案例)
1 大概思路 备注:黄色为影响参数 2 PetShop4的经典数据库连接代码回顾 PetShop4有3个函数,具体有: ExecuteReader:可以读一个表的记录,只能读不 ...
- 【原】 Spark中Worker源码分析(一)
Worker作为对于Spark集群的健壮运行起着举足轻重的作用,作为Master的奴隶,每15s向Master告诉自己还活着,一旦主人(Master>有了任务(Application),立马交给 ...
- bzoj 1922 [Sdoi2010]大陆争霸(最短路变形)
Description 在一个遥远的世界里有两个国家:位于大陆西端的杰森国和位于大陆东端的 克里斯国.两个国家的人民分别信仰两个对立的神:杰森国信仰象征黑暗和毁灭 的神曾·布拉泽,而克里斯国信仰象征光 ...