Apache环境下使用HTTP缓存协议的PHP分析与应用分析

Apache环境下使用HTTP缓存协议的PHP分析与应用分析
静态的网页,有它。

首先,看看第一种情况:Apache静态页面

Apache发送到客户端通常含有Last-Modified和ETag的静态页面,和这两个标签的值来自静态文件修改时间和节点。

以下是Apache截获的返回客户端的标头

xml代码
复制代码代码如下所示:
最后更新:星期五,2007年1月26日01:53:34 GMT
ETag:3f9f640-318-cb9f8380

搜索引擎喜欢静态文件,因为它们具有这两个身份来确定一个文件是否已被更新。

动态页面,如两个,PHP等

因为PHP是动态生成的,它的内容是不是与PHP程序按照确定的时间当最后修改日期,所以默认PHP客户端补丁不包含缓存控制,充分利用缓存必须了解缓存机制,减少B的相互作用,减少带宽流量,降低服务器的负担…很多好处。

三。缓存控制的具体含义

首先,解释一下我所测试和理解的标签的含义。

缓存控制:指定请求和响应的缓存机制。在请求消息或响应消息中设置缓存控件不会修改另一个消息处理过程中的缓存过程。请求的缓存指令包括无缓存、无存储、最大老化、最大过期、分钟新鲜和仅缓存。响应消息中的指令包括公共的、私有的、无缓存、无存储、无转换、无存储、分钟鲜且仅当缓存。

每条消息中的说明如下所示:

公共表明响应可以由任何缓存区域缓存。

私有表示对单个用户的响应消息的全部或部分不能由共享缓存处理。这允许服务器只描述用户响应消息的一部分,该消息对其他用户的请求无效。

没有缓存指示请求或响应消息不能被缓存。

没有存储是用来阻止重要信息被无意的。发送请求消息将使请求和响应消息不使用缓存。

最大年龄表示客户端可以接收不超过指定时间(秒)的响应。

min表示客户机可以接收小于当前时间加上指定时间的响应时间。

马克斯过期表示客户端可以接收超过超时时间的响应消息。如果指定了过期消息的值,客户机可以在超周期内接收超出指定值的响应消息。

PHP的使用:

使用头()在输出(如果你使用ob_start()放头的地方)

PHP代码
复制代码代码如下所示:
头('cache-control:最大年龄= 8);

马克斯年龄= 8表示最大生存时间为8秒,超过8秒。浏览器必须转到服务器重新读取。此时间由用户读取页启动,过期是绝对时间。

过期:缓存过期的绝对时间。如果它通过指定的时间点,浏览器将不识别缓存,然后转到服务器请求一个新的。

最后修改:文档最后修改,它的用途是:1

如果是静态文件,客户机将在缓存中发送时间。Apache会比较它。如果找不到修改,它将直接返回到标题,状态码为304,字节数很少。(高级版本将增加的比较来确定文件是否改变它。

2 php动态文件:

在客户时间比较,PHP将决定是否修改,如果修改的同时,它只会返回1024字节,至于为什么返回1024如果PHP代你可以没有它,文件非常大,它也只返回1024,所以节省带宽,客户端根据修改时间服务器发送自动从缓存文件显示

注意:如果没有最后一个修改过的头,缓存控制和过期也可以工作,但是每个请求将返回真正的文件字节而不是1024。

四、如何

如果您想更好地控制静态页面的缓存,Apache有几个模块可以很好地控制,这里没有讨论。

PHP页面:

有两种东西:

1,不经常更改的页面与新闻发布相似。这些页面的特点是:将有第一稿几经变化,这将不会被修改的时间。控制策略应该是:1、第一稿发送到最后修改,最大年龄设定为1天,升级后,最后的修改更新,最大年龄的时间是修改倍。这似乎更繁琐,也有记录的数目的变化,你也可以期待下一个可能的时间被修改,到期可能过期。

PHP代码
复制代码代码如下所示:
/ /头('cache-control:最大年龄= 86400); / /缓存一天
头('expires:星期一,2007年1月29日08:56:01 GMT '); / /指定的过期时间
(gmdate头'last-modified:'(会D、M Y 01:01:01 ',为时间。'gmt ')); / /格林尼治时间,为时间是一个文件添加时间戳的时候

经常更改的2页

类似bbs,论坛程序,这个页面更新速度更快。缓存的主要功能是防止用户频繁刷新列表,从而导致服务器数据库负担,确保更新的及时性,并确保可以利用缓存。

它一般由缓存控制控制,根据论坛发帖频率灵活控制最大年龄。

PHP代码
复制代码代码如下所示:
头('cache-control:最大年龄= 60); / /缓存一分钟
(gmdate头'last-modified:'(会D、M Y 01:01:01 ',为时间。'gmt ')); / /格林尼治时间,为时间是最后更新的时间戳后

五个额外的

1刷新,走,强制刷新之间的区别

浏览器上有刷新和转移按钮,一些浏览器支持Ctrl - F5来强制页面刷新。它们之间有什么区别

去:用户点击链接是,它充分利用了缓存机制,如果最后修改不与服务器进行通信,使用抓包工具可以查看发送字节0byte,如果缓存过期后,它会执行F5刷新行动。

刷新(F5):这个刷新也是根据缓存是否上次修改决定的。如果有一个到304或1024(PHP)的转换,如果没有最后一个更新时间,那么转到服务器读取并返回真正的文档大小。

强制刷新:完全放弃缓存机制,转到服务器读取最新文档,并将标题发送到服务器如下

xml代码
复制代码代码如下所示:
缓存控制:无缓存

2调试工具

查看浏览器和服务器更好的工具HttpWatch Pro,现在的4.1版本,支持IE7

还有其他代理可以捕获工具分析,HTTP调试。没有,有2000个TCP捕获工具,内置网络。除了TCP捕获工具,2000与网络监视器,但没有具体到HTTP更难使用。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部