Apache PHP利用HTTP缓存协议原理解析及应用.pdfVIP

Apache PHP利用HTTP缓存协议原理解析及应用.pdf

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
http 协议里控制浏览器缓存的头有三个Cache-Control,Expires,Last-Modified 对于静态页面还有Etag。 一、先来看第一种情况:apache 静态页面 apache 发送给客户端的静态页面一般包含Last-Modified 和Etag,这两个标签的值来 自静态文件的修改时间和inode。 下面是截取得apache 返回客户端的头 Last-Modified: Fri, 26 Jan 2007 01:53:34 GMT ETag: 3f9f640-318-cb9f8380 有哪些信誉好的足球投注网站引擎之所以喜欢静态文件是因为有这两个标识,可以判断文件是否更新过 二、PHP 等动态页面 由于php 是动态生成的,它的内容是不能根据php 程序的时间来确定最后修改日期, 所以默认php 返回客户端的时候补包含任何缓存控制,要想利用好缓存就必须了解缓存机 制,和理减少b,s 的交互,缩减带宽流量,减轻服务器负担...好处多多。 三、缓存控制的具体含义 先解释一下本人经过测试理解的这几个标签的含义 Cache-Control:指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置 Cache-Control 并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括 no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached,响应消息中的指 令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、 max-age。 各个消息中的指令含义如下: Public 指示响应可被任何缓存区缓存。 Private 指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服 务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。 no-cache 指示请求或响应消息不能缓存 no-store 用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消 息都不使用缓存。 max-age 指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。 min-fresh 指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale 指示客户机可以接收超出超时期间的响应消息。如果指定max-stale 消息 的值,那么客户机可以接收超出超时期指定值之内的响应消息。 php 用法: 在输出之前用header(),(如果使用ob_start()可以将header 放在程序任意地方) header(Cache-Control: max-age=8); max-age=8 表示最大生存期8 秒,超过8 秒浏览器必须去服务器重新读取,这个时 间是以用户的读取页面开始计时的,而Expires 是绝对时间。 Expires:缓存过期的绝对时间,如果过了它指定的那个时间点,浏览器就不认缓存了, 要去服务器重新请求一份必威体育精装版的。 Last-Modified:文档的最后修改时间,它的妙用就是:1 如果是静态文件,客户端会发上来它缓存里的时间,apache 会来比对,如果发现没有 修改就直接返回一个头,状态码是304,字节数非常少,(高级版本还会增加比较Etag 来 确定文件是否变化) 2 php 动态文件: 客户端发上比对时间,php 会判断是否修改,如果修改时间相同,就只会返回 1024 字 节,至于为什么返回1024 不得而知,如果你的php 生成的文件非常大,它也只返回1024, 所以比较省带宽,客户端会根据服务器端发过来的修改时间自动从缓存文件里显示。 注:如果没有Last-Modified 头,Cache-Control 和Expires 也是可以起作用的,但每次 请求要返回真实的文件字节数,而不是 1024 四、HOW ? 静态页面不用去管它了,如果想更好的控制静态页面的缓存,apache 有几个模块可以 很好的控制,这里不讨论 php 页面: 这里分两种: 1、不经常改动的页面,类似新闻发布,这类页面的特点:第一次发布之后会有几次改 动,随着时间推移基本不会再修改。控制策略应该是:1 第一次发布之

文档评论(0)

tcpe + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档