SkillAgentSearch skills...

Httpcache

An RFC7234 compliant golang http.Handler for caching HTTP responses

Install / Use

/learn @lox/Httpcache
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

httpcache

httpcache provides an rfc7234 compliant golang http.Handler.

wercker status

GoDoc

Example

This example is from the included CLI, it runs a caching proxy on http://localhost:8080.

proxy := &httputil.ReverseProxy{
    Director: func(r *http.Request) {
    },
}

handler := httpcache.NewHandler(httpcache.NewMemoryCache(), proxy)
handler.Shared = true

log.Printf("proxy listening on http://%s", listen)
log.Fatal(http.ListenAndServe(listen, handler))

Implemented

  • All of rfc7234, except those listed below
  • Disk and Memory storage
  • Apache-like logging via httplog package

Todo

  • Offline operation
  • Size constraints on memory/disk cache and cache eviction
  • Correctly handle mixture of HTTP1.0 clients and 1.1 upstreams
  • More detail in Via header
  • Support for weak entities with If-Match and If-None-Match
  • Invalidation based on Content-Location and request method
  • Better handling of duplicate headers and CacheControl values

Caveats

  • Conditional requests are never cached, this includes Range requests

Testing

Tests are currently conducted via the test suite and verified via the CoAdvisor tool.

Reading List

  • http://httpwg.github.io/specs/rfc7234.html
  • https://www.mnot.net/blog/2011/07/11/what_proxies_must_do
  • https://www.mnot.net/blog/2014/06/07/rfc2616_is_dead

Related Skills

View on GitHub
GitHub Stars265
CategoryDevelopment
Updated3mo ago
Forks28

Languages

Go

Security Score

92/100

Audited on Jan 1, 2026

No findings