WPO基础:不同 *** 作系统下如何设置Expires Header

WPO基础:不同 *** 作系统下如何设置Expires Header,第1张

轰�榔骰捍妗⑻跫礼ET 请求和Expires Header》中提到,设置超长时间的Expires Header 后,浏览器不需要和服务器交互,直接从缓存读取数据。那么不同 *** 作系统下怎样添加Expires 头呢? IIS 7.0 下设置Expires 头 选择你希望添加Expires 头的目录,点击“HTTP Response Headers”,点击右侧“Set Common Headers”,出现图-35。勾选“Expire Web content”,然后点选 “On (in Coordinated Universal Time(UTC))”将过期时间设置为2020 年的某个时间就大功告成了。 除了选择某个时间点过期,也可以用多长时间之后过期。设置方法是点选 After,然后选择时间段。之所以有这个选项,可能是考虑到有些同志手多会将电脑的系统时间乱改,比如我上次看完王家卫的电影后,手贱将系统时间改成2046 年后来忘记改回来,结果发现很多网页的缓存都过期了 : ) Expires 头设置完成后,会在网站对应的目录下生成一个 web.config 文件(或在已存在的 web.config 文件中添加如下几行) <configuration><system.webServer><staticContent><clientCache cacheControlMode=”UseExpires” httpExpires=”Sat, 01 Feb 2020 00:00:00 GMT” /></staticContent></system.webServer></configuration>IIS 6.0 下设置Expires 头 进入 IIS,选择网站,右键菜单,点击属性。点击“HTTP 头”,出现图 6-36。设置方法类似 IIS7.0,就不赘述了。 Apache 下设置Expires 头 在Apache 环境下,目录中会存在.htaccess 文件。如果没有的话,可以用文本编辑器创建一个。在这个文件内写入如下代码 FileETag MTime SizeExpiresActive onExpiresDefault “access plus 20 year” 上述代码将目录下所有的文件的过期时间设定为20 年后。 单独的PHP 文件设置Expires 头 通常,我们很少对HTML 或PHP 文件设定Expires 头,因为这些文件往往会有变动或者更新。但不排除例外情况,比如某些公司的“关于我们”页面,一辈子也没修改过 :)。

如果一个页面已经在你的浏览器中被缓存,那么你下次浏览时浏览器将会检测文档是否被修改过,那么它就会发送这样的头部:

If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT

如果自从这个时间以来未被修改过,那么服务器将会返回“304 Not Modified”,而且不会再返回内容。浏览器将自动去缓存中读取内容

在PHP中,可以用$_SERVER['HTTP_IF_MODIFIED_SINCE'] 来检测。

// assume $last_modify_time was the last the output was updated

// did the browser send If-Modified-Since header?

if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {

// if the browser cache matches the modify time

if ($last_modify_time == strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE'])) {

// send a 304 header, and no content

header("HTTP/1.1 304 Not Modified")

exit

}

}

-------------------------------------

或者可以这样来定义

-------------------------------------

在PHP中,你可以通过 header() 来设置头部响应信息。PHP已经自动发送了一些必要的头部信息,如 载入的内容,设置 cookies 等等… 你可以通过 headers_list() 函数看到已发送和将要发送的头部信息。你也可以使用headers_sent()函数来检查头部信息是否已经被发送。

Cache-Control

w3.org 的定义是:“The Cache-Control general-header field is used to specify directives which MUST be obeyed by all caching mechanisms along the request/response chain.” 其中“caching mechanisms” 包含一些你ISP可能会用到的 网关和代理信息。

例如:

以下是代码片段:Cache-Control: max-age=3600, public

“public”意味着这个响应可以被任何人缓存,“max-age” 则表明了该缓存有效的秒数。允许你的网站被缓存降大大减少下载时间和带宽,同时也提高的浏览器的载入速度。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11308608.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存