在某些特殊的情况下或许你不希望使客户端浏览器缓存页面。
这里我先给一段可以使用的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-cache”);

我一一为大家解释下代码的意思, 当然,高手莫笑!
  header 是什么,当然这里不是说php中header函数的功用,不知道header函数的朋友, 这篇博文不适合你~
 先来了解下HTTP响应的消息到底是什么,其实 可以使用Telnet命令来查看 ,下面我给出点HTTP响应内容:HTTP/1.1 200 OK
Server:Microsoft-IIS/6.0
Date: Thu, 31 Oct 2008 11:20:53 GMT
Content-Type: text/html
Set-Cookie: name=value; path=/
Cache-control: private

<html>
……

上面的信息中,第一行为状态行,紧跟状态行后面的内容是消息头(是我们今天的重点),接着是一个空行,接着是实体。
这里我们重点(也是简要)说说消息头,消息头按照作用可以分为4类,通用信息头、请求头、响应头、实体头。
通用信息头 既能用于请求信息中,也能用于响应信息中,(请求信息由客户机发送到服务器,响应信息由服务器发送到客户机)但与被传输的实体内容没有关系的常用信息头,如Date、Pragma。
请求头 用于在请求信息中向服务器传递附加信息,主要包括客户机可以接受的数据类型,压缩方法,语言,以及客户机上保留的Cookie信息和发出该请求的超链接资源地址等。
响应头 用于在响应信息中想客户机传递附加信息,包括服务器程序的名称,要求客户端认证的方式,请求的资源已经移动到新地址等等。
实体头 用作实体内容的信息,也就是可以解释成我们看到的东西的主体内容。
好了,这里开始真正说到为什么要用开始给的禁止缓存的代码了:
首先代码第一行是一个实体头,看着是不是眼熟啊?设置Cookie过期是不是也用到了Expires呢?这里设置了一个过去的时间,以此来达到让客户端禁止缓存的目的,这种方法在绝大多数情况下是可用的。但是还是有必要让我们众多的浏览器知道一些其他的信息!
第二行 也是一个实体头,说明了我们文档的更新时间。这个是为了让在客户机已经缓存文件的情况下,向服务器证实现在缓存的文档是最新的。当然如果不是最新的,服务器会发送一个新的版本过来。
第三行从字面意思就很好理解了,禁止客户端缓存,每次请求都必须验证文档是最新的。这也是为什么需要第二行信息的原因了,文档必须为最新的版本(不然,客户一直在使用一千年前你做的页面多么不好~)
第四行和第三行一样都是一个通用信息头,而且Pragma只有一个值就是no-cache!它用来指示HTTP1.0客户机不要缓存文档。不过有些HTTP1.0的浏览器对这个支持不太好。在HTTP1.1中大家也都是第三行代码就完事,这里为什么用?保险嘛(其实原来我没有加这行,见到很多人加了,我也就跟风了)~
好了,关于禁止缓存就说这么多了,个人感觉还是很有用的。这里涉及到了HTTP信息头的问题,不懂的就翻翻资料吧, 因为我很懒 ,其实是一大堆工作,因为我是从事电话录音卡销售工作的,今天就到这里了 ,没事多来我空间逛逛,说不定会有很大收获哦!

转载于:https://www.cnblogs.com/xiaoxia121/archive/2011/05/12/2044188.html

php实现禁止缓存,高手莫来相关推荐

  1. html cdn不缓存,【前端开发日常 - 6】七牛CDN上的网页缓存问题及HTML禁止缓存(续)...

    需求背景 紧接着之前的内容[前端开发日常 - 5]七牛CDN上的网页缓存问题及HTML禁止缓存. 由于七牛CDN无法通过设置对单独的文件修改,而只能通过对 bucket 的统一设置修改 max-age ...

  2. axios的get请求禁止缓存

    使用axios的get请求时产生缓存,致使请求的数据不是最新的. 这样的场景很多,例如我们添加或修改数据成功后,立马调用查询接口,因查询接口是get请求,产生了缓存,响应数据还是之前数据,并没有新增或 ...

  3. 《C语言到底能干什么》1.5 在窗口上写上“Hello World”(高手莫看)

    1.5 在窗口上写上"Hello World" 再次声明:高手莫看,浪费时间 这一节我们乘胜追击,来继续深入学习下,学习窗口处理时间的东东. 也许你以前听说过,windows系统是 ...

  4. jsp页面禁止缓存设置

    jsp页面禁止缓存设置 sp页面禁止缓存设置 1.客户端缓存要在<head>中加入类似如下内容: Html代码   <meta http-equiv="pragma&quo ...

  5. Status Code:200 OK (from disk cache)和304的区别,以及怎么禁止缓存

    有时候缓存是 200 OK (from disk cache)有时候会是 304 ? 看运维是否移除了 Entity Tag.移除了,就总是 200 OK (from cache).没有移除,就两者交 ...

  6. java 禁止缓存_JavaWeb如何实现禁用浏览器缓存

    这篇文章主要介绍了JavaWeb如何实现禁用浏览器缓存,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.禁用浏览器缓存可以通过设置响应头的方式,有 ...

  7. ajax应用中如何禁止缓存

    解决ajax应用中的缓存问题很简单.只要在url中增加一个变量就可以了.这样浏览器就会认为你每次访问的都是不同的地址.当然就不存在缓存问题了. 例如: function SendData(sUrl,I ...

  8. armv8 linux 禁止缓存,禁用CPU高速緩存上ARMv8-A的Linux

    (L1/L2)我想禁用運行Linux的ARMv8-A平臺上的低級別的高速緩存中,爲了測量的優化代碼的性能,獨立的高速緩衝存儲器存取.禁用CPU高速緩存上ARMv8-A的Linux 到目前爲止,我有一個 ...

  9. java expires_设置浏览器禁止 缓存 的三个头 : expires,pragma, cache-

    [java]代码库package am_cn.itcast.response; import java.io.IOException; import java.util.Date; import ja ...

  10. Chrome浏览器禁止缓存

    为什么80%的码农都做不了架构师?>>>    转载于:https://my.oschina.net/duojin/blog/1807334

最新文章

  1. Android移动开发之【Android实战项目】DAY3-滑动侧边栏SlidingMenu
  2. 网站SEO优化没有捷径!
  3. [Spring MVC] - JSP + Freemarker视图解释器整合
  4. 互联网1分钟 | 0914
  5. 用手机写代码:基于 Serverless 的在线编程能力探索
  6. EntityFramework进阶——继承
  7. (238)数字IC工程师核心技能树(一)
  8. JavaScript 编程精解 中文第三版 七、项目:机器人
  9. Codeforces Gym 100338H High Speed Trains 组合数学+dp+高精度
  10. API 接口设计中 Token 类型的分类与设计
  11. IF Exists在Oracle中怎么用?
  12. 32*32的booth算法的乘法器
  13. 加密保护软件 WinLicense常见问题整理大全(六)
  14. Python中向列表添加元素的方法
  15. 皇家每羊历险记(二)——地形制作
  16. 特殊矩阵(对称矩阵)的压缩存储和解压缩
  17. accumulate 的用法
  18. 【Halcon视觉】定位
  19. 2万字好文!手把手教你实现 Docker 部署 Redis 集群
  20. 陶行知:学生自治问题之研究

热门文章

  1. 关于Mysql修改密码的方法汇总
  2. 快切-开源中文css框架之纯css透明
  3. asp.net中SqlDataReader使用时关闭数据库连接的问题(转)
  4. ORACLE ebs 11.5.10 for linux 安装心得
  5. 功能增强的进度条控件(源码)
  6. smart link和聚合链路综合实验
  7. PHP方法的重载主要格式,PHP函数重载方法及技巧
  8. python开源聊天框架_转载:15个最受欢迎的Python开源框架-阿里云开发者社区
  9. Springboot2.x 集成 jedis和spring-boot-starter-data-redis的性能测试比较(Jedis完胜:附带源码)
  10. java的lr词法编译器,自制编译器 青木峰郎 笔记 Ch3 词法分析的概要