expires 24h;
expires 0;
expires -1;
expires epoch;
add_header Cache-Control private;
指令
add_header add_header
expires expires
增加头标
语法: add_header name value
默认值: none
作用域: http, server, location
当 HTTP 应答状态码为 200、204、301、302 或 304 的时候,增加指定的 HTTP 头标 。其中头标的值可以使用变量 。
expires
语法: expires [time|epoch|max|off
默认值: expires off
作用域: http, server, location
使用本指令可以控制HTTP应答中的“Expires”和“Cache-Control”的头标,(起到控制页面缓存的作用) 。
可以在time值中使用正数或负数 。“Expires”头标的值将通过当前系统时间加上您设定的 time 值来获得 。
epoch指定“Expires”的值为 1 January, 1970, 00:00:01 GMT 。
max指定“Expires”的值为 31 December 2037 23:59:59 GMT,“Cache-Control”的值为10年 。
指定“Expires”的值为 服务器当前时间 -1s,即永远过期.
"Cache-Control"头标的值由您指定的时间来决定:
- 负数
Cache-Control: no-cache- 正数或零
Cache-Control: max-age = ## 为您指定时间的秒数 。
"off" 表示不修改“Expires”和“Cache-Control”的值;
三. Cache-ControlCache-Control 通用消息头字段被用于在http 请求和响应中通过指定指令来实现缓存机制 。缓存指令是单向的, 这意味着在请求设置的指令,在响应中不一定包含相同的指令 。
响应头:Cache-Control:no-cache,强制每次请求直接发送给源服务器,而不经过本地缓存版本的校验 。这对于需要确认认证应用很有用(可以和public结合使用),或者严格要求使用最新数据 的应用(不惜牺牲使用缓存的所有好处). 通俗解释:浏览器通知服务器,本地没有缓存数据.
cache-control :
max-age>0时 直接从游览器缓存中提取;
max-age<=0 时向server发送http请求确认 ,该资源是否有修改, 有的话 返回200 , 无的话 返回304 。
通俗解释:响应头中的 Cache-Control:max-age=315360000 是通知浏览器: 315360000 秒之内不要烦我, 就自己从缓冲区中刷新 。
语法
指令不区分大小写,并且具有可选参数,可以用令牌或者带引号的字符串语法 。多个指令以逗号分隔 。
指令
- 可缓存性
public
表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存 。表示相应会被缓存,并且在多用户间共享 。默认是public 。
private
表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它),可以缓存响应内容 。响应只作为私有的缓存,不能在用户间共享 。如果要求HTTP认证,响应会自动设置为private 。
no-cache
在释放缓存副本之前,强制高速缓存将请求提交给原始服务器进行验证 。指定不缓存响应,表明资源不进行缓存 。但是设置了no-cache之后并不代表浏览器不缓存,而是在缓存前要向服务器确认资源是否被更改 。因此有的时候只设置no-cache防止缓存还是不够保险,还可以加上private指令,将过期时间设为过去的时间 。
only-if-cached
表明客户端只接受已缓存的响应,并且不要向原始服务器检查是否有更新的拷贝.
- 到期
max-age=<seconds>
设置缓存存储的最大周期,超过这个时间缓存被认为过期(单位秒) 。与Expires相反,时间是相对于请求的时间 。max-age会覆盖掉Expires 。
s-maxage=<seconds>
覆盖max-age 或者 Expires 头,但是仅适用于共享缓存(比如各个代理),并且私有缓存中它被忽略 。也就是说s-maxage只用于共享缓存,比如CDN缓存(s -> share) 。与max-age 的区别是: max-age用于普通缓存,而s-maxage用于代理缓存 。如果存在s-maxage,则会覆盖max-age 和 Expires.
max-stale[=<seconds>]
表明客户端愿意接收一个已经过期的资源 。可选的设置一个时间(单位秒),表示响应不能超过的过时时间 。
min-fresh=<seconds>
表示客户端希望在指定的时间内获取最新的响应 。
stale-while-revalidate=<seconds>
表明客户端愿意接受陈旧的响应,同时在后台异步检查新的响应 。秒值指示客户愿意接受陈旧响应的时间长度 。
stale-if-error=<seconds>
表示如果新的检查失败,则客户愿意接受陈旧的响应 。秒数值表示客户在初始到期后愿意接受陈旧响应的时间 。
- 重新验证和重新加载
推荐阅读
- 尚客茶业吹响中秋下价集结号
- 从间谍木马到远控木马,这群黑客下手越来越狠
- 网络营销:关于外链你了解多少?
- 神经衰弱吃什么药 让你的神经松弛下来
- 5个家常菜让钙片“下岗”
- 关于今年普洱茶价格的思考
- 每天一杯茶 再也不怕电脑辐射
- 刘备对儿子留下的遗言 刘备临终前遗言
- 梦见骑自行车下坡很快掉到悬崖下面了 梦见骑自行车下坡很快是什么意思
- 梦见奶奶第二次去世头掉下来了 梦见奶奶第二次去世,我哭到不行
