文档章节

Apache服务器设置缓存过期时间

十月初五的月亮
 十月初五的月亮
发布于 2016/07/16 11:53
字数 1208
阅读 19
收藏 0

Apache模块 mod_expires
说明 允许通过配置文件控制HTTP的"Expires"和"Cache-Control"头内容
状态 扩展(E)
模块名 expires_module
源文件 mod_expires.c
概述
这个模块控制服务器应答时的Expires头内容和Cache-Control头的max-age指令。有效期(expiration date)可以设置为相对于源文件的最后修改时刻或者客户端的访问时刻。
这些HTTP头向客户端表明了文档的有效性和持久性。如果有缓存,文档就可以从缓存(除已经过期)而不是从服务器读取。接着,客户端考察缓存中的副本,看看是否过期或者失效,以决定是否必须从服务器获得更新。
要修改Cache-Control头中max-age(参见RFC 2616 section 14.9)项之外的内容,你还可以使用Header指令。
Alternate(交替/轮流) Interval(间隔) Syntax(语法)
ExpiresDefault和ExpiresByType指令同样能够用易懂的语法格式进行定义:
ExpiresDefault " [plus] {}*"
ExpiresByType type/encoding " [plus] {}*"
其中是下列之一:
access
now (等价于'access')
modification
plus关键字是可选的。必须是整数[可以被atoi()接受的],是下列之一:
years
months
weeks
days
hours
minutes
seconds
例如,下列3个指令都表示文档默认的有效期是一个月:
ExpiresDefault "access plus 1 month"
ExpiresDefault "access plus 4 weeks"
ExpiresDefault "access plus 30 days"
有效期可以通过增加""子句进一步调整:
ExpiresByType text/html "access plus 1 month 15 days 2 hours"
ExpiresByType image/gif "modification plus 5 hours 3 minutes"
注意,如果你使用基于最后修改日期的设置,"Expires:"头将不会被添加到那些并非来自于磁盘文件的内容。这是因为这些内容并不存在"最后修改时间"的属性。
ExpiresActive 指令
说明 启用或禁用产生"Expires:"和"Cache-Control:"头的功能
语法 ExpiresActive On|Off
作用域 server config, virtual host, directory, .htaccess
覆盖项 Indexes
状态 扩展(E)

模块 mod_expires
这个指令对其作用范围内的文档启用或禁用产生Expires和Cache-Control头的功能。若设置为 Off 则不会为其作用范围内的任何文档生成Expires和Cache-Control头(除非被更低一层的规则改写,比如.htaccess文件)。若设置为 On 则会按照ExpiresByType和ExpiresDefault指令定义的标准为其作用范围内的文档生成Expires和Cache-Control头。
注意,这个指令并不保证Expires或Cache-Control头一定会产生。如果定义的标准不规范,将不会产生这两个头,其效果是好像从未设置过这个指令一样。
ExpiresByType 指令
说明 由MIME类型配置的Expires头的值
语法 ExpiresByType MIME-type seconds
作用域 server config, virtual host, directory, .htaccess
覆盖项 Indexes
状态 扩展(E)

模块 mod_expires
这个指令定义了为指定MIME类型的文档(如text/html)生成的Expires头的值和Cache-Control头的max-age指令。seconds参数设置了添加到基准时间以构造有效期限的秒数。Cache-Control: max-age的计算方法是从有效期减去当前请求时间并转化为秒数。
基准时刻可以是源文件的最后修改时刻或者客户端对源文件的访问时刻,至于使用那一个则由指定。"M"表示源文件的最后修改时刻,"A"表示客户端对源文件的访问时刻。需要注意的是和seconds之间没有空格。
这两种基准的差别是很微妙的。如果使用"M",所有当前缓存中的文档副本都将在同一时刻过期,这个可能对定期更新的URL(比如位于同一位置的每周通告)很有好处。如果使用"A",则每个客户端所得到的有效期是不一样的,这个可能对那些几乎不更新的图片文件很有好处,特别是对于一组都引用了相同图片的相关文档。
示例:
# 启用有效期控制
ExpiresActive On
# GIF有效期为1个月
ExpiresByType image/gif A2592000
# HTML文档的有效期是最后修改时刻后的一星期
ExpiresByType text/html M604800
注意,这个指令只有在"ExpiresActive On"的条件下才有效。它只对指定的MIME类型文档改写由ExpiresDefault指令设置的有效期。
你也可以使用前面讲述的alternate syntax指定有效期的计算方法。
ExpiresDefault 指令
说明 默认有效期的计算方法
语法 ExpiresDefault seconds
作用域 server config, virtual host, directory, .htaccess
覆盖项 Indexes
状态 扩展(E)
模块 mod_expires
该指令设置了其作用范围内的所有文档的默认有效期的计算方法,它可以被ExpiresByType指令基于MIME类型被改写。详情请参见ExpiresByType指令和那个alternate syntax的描述。

本文转载自:http://www.server110.com/apache/201310/2311.html

共有 人打赏支持
十月初五的月亮

十月初五的月亮

粉丝 0
博文 71
码字总数 31441
作品 0
朝阳
私信 提问
负载均衡环境中和如何设置Expires和Etag

在负载均衡环境中(LVS, LoadBalance)为了减少浏览器数据的重复请求操作,一般需要设置 Http Header 的 Etage 和 Expires 告诉浏览器请求数据是否已过期。以下内容主要考虑Apache+squid 环境...

晨曦之光
2012/03/09
573
0
浏览器的缓存原理

如果每次打开页面都去从服务器加载,服务器压力有点大,同时响应时间也会影响用户体验,大部分的时候,web端的内容是不会改变的,这时候再从服务端拿数据,就有点太没必要了,所以就有了浏览...

stone_
2016/08/02
33
0
HTTP读书笔记(二)

第三章 HTTP结构 1.一个HTTP/1.1服务器特性要有:丰富的资源支持,虚拟主机,访问控制,日志记录,配置,监视和性能特性。 2.反向DNS对服务器端配置可以使得主机对客户端详细的访问控制和日志...

年少爱追梦
2016/02/23
33
0
浏览器与服务端协商缓存

协商过程 协商的过程很容易理解,首先,当浏览器向Web服务器请求一些内容时,Web服务器需要告诉浏览器哪些内容可以被缓存,一旦浏览器知道某个内容可以缓存后,下次当浏览器需要请求这个内容...

go4it
2016/12/07
3
0
浏览器缓存相关的Http头介绍:Expires,Cache-Control,Last-Modified,ETag

缓存对于web开发有重要作用,尤其是大负荷web系统开发中。 缓存分很多种:服务器缓存,第三方缓存,浏览器缓存等。其中浏览器缓存是代价最小的,因为浏览器缓存依赖的是客户 端,而几乎不耗费...

pczhangtl
2013/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Jmeter参数的AES加密使用

在Jmeter日常实践中,大家应该都遇到过接口传参需要加密的情况。以登陆为例,用户名和密码一般都需要进行加密传输,在服务端再进行解密,这样安全系数会更高,但在使用jmeter进行接口测试的时...

程序猿拿Q
8分钟前
0
0
MYSQL 日期函数 Date and Time Functions

Table 12.13 Date and Time Functions Name Description ADDDATE() Add time values (intervals) to a date value ADDTIME() Add time CONVERT_TZ() Convert from one time zone to another ......

_liucui_
15分钟前
0
0
Android代码混淆ProGuard工作原理简介

ProGuard能够对Java类中的代码进行压缩(Shrink),优化(Optimize),混淆(Obfuscate),预检(Preveirfy)。    1. 压缩(Shrink): 在压缩处理这一步中,用于检测和删除没有使用的类,字段...

SuShine
17分钟前
0
0
Idea 2018激活

教程地址: https://www.52pojie.cn/thread-781394-1-1.html 亲测可用

一个不正经的程序员
23分钟前
0
0
Android组件化开发实践和案例分享

目录介绍 1.为什么要组件化 1.1 为什么要组件化 1.2 现阶段遇到的问题 2.组件化的概念 2.1 什么是组件化 2.2 区分模块化与组件化 2.3 组件化优势好处 2.4 区分组件化和插件化 2.5 applicatio...

潇湘剑雨
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部