Categorygithub.com/sourcegraph/httpcache
modulepackage
0.0.0-20160524185540-16db777d8ebe
Repository: https://github.com/sourcegraph/httpcache.git
Documentation: pkg.go.dev

# README

httpcache

Build Status

A Transport for Go's http.Client that will cache responses according to the HTTP RFC

Package httpcache provides a http.RoundTripper implementation that works as a mostly RFC-compliant cache for http responses.

It is only suitable for use as a 'private' cache (i.e. for a web-browser or an API-client and not for a shared proxy).

Documentation: http://godoc.org/github.com/gregjones/httpcache

License: MIT (see LICENSE.txt)

Cache backends

# Packages

Package diskcache provides an implementation of httpcache.Cache that uses the diskv package to supplement an in-memory map with persistent storage .
Package leveldbcache provides an implementation of httpcache.Cache that uses github.com/syndtr/goleveldb/leveldb.
Package memcache provides an implementation of httpcache.Cache that uses gomemcache to store cached responses.

# Functions

CachedResponse returns the cached http.Response for req if present, and nil otherwise.
Date parses and returns the value of the Date header.
NewMemoryCache returns a new Cache that will store items in an in-memory map.
NewMemoryCacheTransport returns a new Transport using the in-memory cache implementation.
NewTransport returns a new Transport with the provided Cache implementation and MarkCachedResponses set to true.

# Constants

XFromCache is the header added to responses that are returned from the cache.

# Variables

ErrNoDateHeader indicates that the HTTP headers contained no Date header.

# Structs

MemoryCache is an implemtation of Cache that stores responses in an in-memory map.
Transport is an implementation of http.RoundTripper that will return values from a cache where possible (avoiding a network request) and will additionally add validators (etag/if-modified-since) to repeated requests allowing servers to return 304 / Not Modified.

# Interfaces

A Cache interface is used by the Transport to store and retrieve responses.