Help us shape the future of Go! Take the 2026 Go Developer Survey

rfc

package
v1.6.39 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2023 License: MIT Imports: 10 Imported by: 11

Documentation

Index

Constants

View Source
const (
	VarySeparator          = "{-VARY-}"
	DecodedHeaderSeparator = ";"
)
View Source
const StoredTTLHeader = "X-Souin-Stored-TTL"

Variables

This section is empty.

Functions

func GetCacheKeyFromCtx

func GetCacheKeyFromCtx(currentCtx ctx.Context) string

func GetVariedCacheKey

func GetVariedCacheKey(rq *http.Request, headers []string) string

GetVariedCacheKey returns the varied cache key for req and resp.

func HeaderAllCommaSepValues

func HeaderAllCommaSepValues(headers http.Header) []string

headerAllCommaSepValues returns all comma-separated values (each with whitespace trimmed) for header name in headers. According to Section 4.2 of the HTTP/1.1 spec (http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2), values from multiple occurrences of a header should be concatenated, if the header's value is a comma-separated list.

func HitStaleCache

func HitStaleCache(h *http.Header)

HitStaleCache set hit and stale in the Cache-Status header

func SetCacheStatusHeader

func SetCacheStatusHeader(resp *http.Response) *http.Response

SetCacheStatusHeader set the Cache-Status header

func SetRequestCacheStatus

func SetRequestCacheStatus(h *http.Header, header, cacheName string)

SetRequestCacheStatus set the Cache-Status fwd=request

func ValidateCacheControl

func ValidateCacheControl(r *http.Response, requestCc *cacheobject.RequestCacheDirectives) bool

ValidateCacheControl check the Cache-Control header

func ValidateETag added in v1.6.38

func ValidateETag(res *http.Response, validator *Revalidator)

func ValidateMaxAgeCachedResponse

func ValidateMaxAgeCachedResponse(co *cacheobject.RequestCacheDirectives, res *http.Response) *http.Response

func ValidateMaxAgeCachedStaleResponse

func ValidateMaxAgeCachedStaleResponse(co *cacheobject.RequestCacheDirectives, res *http.Response, addTime int) *http.Response

Types

type Revalidator added in v1.6.38

type Revalidator struct {
	Matched                     bool
	IfNoneMatchPresent          bool
	IfMatchPresent              bool
	IfModifiedSincePresent      bool
	IfUnmodifiedSincePresent    bool
	IfUnmotModifiedSincePresent bool
	NeedRevalidation            bool
	IfModifiedSince             time.Time
	IfUnmodifiedSince           time.Time
	IfNoneMatch                 []string
	IfMatch                     []string
}

func ParseRequest added in v1.6.38

func ParseRequest(req *http.Request) *Revalidator

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL