Cache-Control指令

表示是否能缓存的指令

public指令

当指定使用public命令时,明确表明其他用户也可利用缓存

private指令

当指定private指令后,响应只以特定的用户作为对象,与public行为相反,对于非特定用户,代理服务器则不会返回缓存

no-cache 指令

使用该指令的目的是为了防止从缓存中返回过期的资源。

客户端发送的请求包含该指令,表示客户端不会接受缓存过的响应,中间的缓存服务器就必须把客户端请求转发给源服务器;

服务器返回的请求包含该指令,那么缓存服务器不能对资源进行缓存。源服务器以后将不再对缓存服务器请求中提出的资源有效性进行确认,且禁止其对响应资源进行缓存操作

(no-cache=Location)

若像上述一样对no-cache具体指定参数值,那么客户端在接受到这个被指定参数值的首部字段对应的响应报文后,就不能使用缓存。换言之,无参数值的首部字段可以使用缓存。只能在响应指令中指定该参数。

控制可执行缓存的对象的指令

no-store指令

当使用no-store指令时,暗示请求(和对应的响应)或响应中包含机密信息。因此,该指令规定缓存不能在本地存储请求或相应的任意部分。

指定缓存期限和认证的指令

s-maxage指令

示例:Cache-control:s-maxage=xxxx(单位:秒)

只适用于供多位用户使用的公共缓存服务器(一般指代理服务器),对同一用户重复返回响应的服务器来说,该指令无任何作用。

max-age指令

示例:Cache-control:max-age=xxxx(单位:秒)

客户端发送包含该指令,若判定缓存资源的缓存时间比指定时间数值小,则接受缓存的资源。若max-age=0,那么缓存服务器需要将请求转发给源服务器;

服务器返回的响应包含该指令,缓存服务器在指定时间内将不对缓存资源的有效性再作确认。

min-fresh指令

示例:Cache-control:min-fresh=xxxx(单位:秒)

该指令要求缓存服务器返回至少还未过指定时间的缓存资源。比如,设置60秒,过了60秒的资源都无法作为响应返回。

max-stale

示例:Cache-control:max-stale=xxxx(单位:秒)

该指令可指示缓存资源。即使过期也照常接收。若未指定具体数值,那么无论过多久,客户端都会接受响应。如果指令中指定具体数值,即使过期,只要仍处于max-stale指定的时间内,仍会被客户端接收。

only-if-cached

该指令表示客户端仅在缓存服务器本地缓存目标资源的情况下才会要求其返回。亦即缓存服务器不重新加载响应,也不会再确认资源有效性,若发生缓存服务器本地缓存无响应,则返回504状态码Gateway Timeout.

must-revalidate

使用该指令,代理会向源服务器再次验证即将返回的响应缓存目前是否仍然有效。

若无法获取,返回504状态码,另外该指令忽略请求的max-sale指令

proxy-revalidate

该指令要求所有的缓存服务器在接受到客户端带有该指令的请求返回响应之前,必须再次验证缓存的有效性

no-transform

该指令规定无论是在请求还是响应中,缓存都不能改变实体主体的媒体类型(可以防止缓存或代理压缩图片等类似操作)

cache-control扩展

实例:Cache-control:private,community=“UCI”

通过cache-extension(标记)(token),可以扩展Cache-control首部字段内的命令。extension tokens仅对能理解他的服务器来说有意义,不能被理解就会直接被忽略。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值