码迷,mamicode.com
首页 > Web开发 > 详细

Apache模块 mod_expires

时间:2015-09-27 18:55:23      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:expires apache squid

做笔记,上来就直接干了

当直接在浏览器中输入一个URL,或者点击一个链接的时候,那么浏览器缓存就会起作用,如果缓存没有过期,那么浏览器会从本地读取资源,不会发起HTTP请求,如果缓存过期,那么浏览器会发起新的浏览器请求。按ctrl+F5,浏览器会清空本地缓存,重新请求资源。 
Expires是HTTP/1.0的缓存头, Cache-Control: max-age是HTTP/1.1是用来进行HTTP缓存的头。 
Expires指定了资源过期的绝对时间,GMT格式,Cache-Control: max-age指定了资源过期的相对时间,单位是秒。 
在支持HTTP/1.1的浏览器上,如果发送两个头,那么Cache-Control: max-age会覆盖掉Expires; 
在支持HTTP/1.0的浏览器上,即使发送了两个头,但是只有Expires会起作用,所以为了兼容老的浏览器,还是要同时发送这两个头。

设置HTTP缓存,需要安装expires_module,其会发送Expires和Cache-Control: max-age两个HTTP头。配置如下:

<IfModule expires_module>
    ExpiresActive On
    ExpiresByType application/x-javascript  "access plus 30 days"
    ExpiresByType text/css  "access plus 30 days"
    ExpiresByType image/gif  "access plus 30 days"
    ExpiresByType image/jpeg  "access plus 30 days"
    ExpiresByType image/png  "access plus 30 days"
</IfModule>

两种写法

ExpiresByType image/gif A2592000
# HTML文档的有效期是最后修改时刻后的一星期
ExpiresByType text/html M604800



ExpiresByType application/x-javascript "access plus 30 days"表示对js资源设置ExpiresCache-Control: max-age头,其中Expires的值是以客户端访问资源的时间为基准的后30天Cache-Control: max-age的值是3600x24x30秒。


两种写法是有区别的,在前面用squid 缓存的时候

修改时间如果短很容易过期,过期后squid会一直请求后端apache

比如

squid的日志

[27/Sep/2015:10:51:12 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:10:57:00 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:10:58:03 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:00:34 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:00:52 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:01:13 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:04:13 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:06:29 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:06:39 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:07:09 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:08:27 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

[27/Sep/2015:11:12:34 TCP_REFRESH_UNMODIFIED:ROUNDROBIN_PARENT

修改后

[27/Sep/2015:11:14:53 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:16:47 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:19:44 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:24:48 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:26:09 TCP_IMS_HIT:HIER_NONE

[27/Sep/2015:11:27:36 TCP_IMS_HIT:HIER_NONE

后端apache几乎没有日志,以前一直304



本文出自 “小雨” 博客,请务必保留此出处http://evildexy.blog.51cto.com/8607019/1698558

Apache模块 mod_expires

标签:expires apache squid

原文地址:http://evildexy.blog.51cto.com/8607019/1698558

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!