123456789101112131415161718192021222324252627282930313233 |
- package client
- import (
- "github.com/kataras/iris/cache/cfg"
- "github.com/kataras/iris/cache/client/rule"
- "github.com/kataras/iris/cache/ruleset"
- "github.com/kataras/iris/context"
- )
- // DefaultRuleSet is a list of the default pre-cache validators
- // which exists in ALL handlers, local and remote.
- var DefaultRuleSet = rule.Chained(
- // #1 A shared cache MUST NOT use a cached response to a request with an
- // Authorization header field
- rule.HeaderClaim(ruleset.AuthorizationRule),
- // #2 "must-revalidate" and/or
- // "s-maxage" response directives are not allowed to be served stale
- // (Section 4.2.4) by shared caches. In particular, a response with
- // either "max-age=0, must-revalidate" or "s-maxage=0" cannot be used to
- // satisfy a subsequent request without revalidating it on the origin
- // server.
- rule.HeaderClaim(ruleset.MustRevalidateRule),
- rule.HeaderClaim(ruleset.ZeroMaxAgeRule),
- // #3 custom No-Cache header used inside this library
- // for BOTH request and response (after get-cache action)
- rule.Header(ruleset.NoCacheRule, ruleset.NoCacheRule),
- )
- // NoCache disables the cache for a particular request,
- // can be used as a middleware or called manually from the handler.
- func NoCache(ctx context.Context) {
- ctx.Header(cfg.NoCacheHeader, "true")
- }
|