Permalink
Commits on Dec 28, 2008
  1. @rtomayko
  2. @rtomayko

    proper support for private/public Cache-Control directives

    * Responses marked as explicitly public are cached even when the
      request includes an Authorization or Cookie header. Responses
      marked as explicitly private are considered uncacheable.
    
    * Added a "private_headers" option that dictates which request
      headers trigger "private" cache control processing. By default,
      the Cookie and Authorization headers are included. Headers may be
      added or removed as necessary to change the default private logic.
    rtomayko committed Dec 28, 2008
Commits on Dec 22, 2008
  1. @rtomayko

    respect must-revalidate cache control directives

    Adhere to must-revalidate/proxy-revalidate cache control directives
    by not assigning the default_ttl to responses that don't include
    freshness information. This should let us begin using default_ttl
    more liberally since we can control it from the origin using
    must-revalidate/proxy-revalidate.
    rtomayko committed Dec 22, 2008
  2. @rtomayko
  3. @rtomayko

    TODO update

    rtomayko committed Dec 22, 2008
Commits on Dec 12, 2008
  1. @rtomayko
Commits on Dec 9, 2008
  1. @rtomayko
Commits on Dec 1, 2008
  1. @rtomayko

    disk entity store produces a body that responds to #to_file

    The idea here is to allow a middleware component such as
    Rack::Sendfile [1] to intercept responses that can be served from
    disk and use the web-server's X-Sendfile support.
    
    http://github.com/rtomayko/rack-contrib/tree/master/lib/rack/sendfile.rb
    rtomayko committed Dec 1, 2008
  2. @rtomayko

    fix warnings

    rtomayko committed Dec 1, 2008
  3. @rtomayko
Commits on Nov 25, 2008
  1. @rtomayko

    fix meta-store hit, entity-store miss bug

    Most entity stores can be purged behind rack-cache (e.g.,
    memcached automatically purges based on mem use, the disk store
    could be purged with a cron job, etc.). This leads to a situation
    where the metastore could point to an entity body that no longer
    exists. This would result in a 500 previously but now we detect
    it in the metastore and act as if it was a straight miss.
    
    Ideally, we would also purge the metastore entry, since it's no
    longer valid and will only cause more false-hits to occur, but
    that's something we'll have to tackle later.
    rtomayko committed Nov 25, 2008
  2. @rtomayko
  3. @rtomayko

    basically sane handling of HEAD requests

    A HEAD request is never passed through to the backend except
    when transitioning with pass!. The cache responds to HEAD
    requests without invoking the backend at all when the cached
    entry is fresh. When no cache entry exists, or the cached
    entry is stale and can be validated, the backend is invoked
    with a GET request and the HEAD handling is performed right
    before the response is delivered upstream.
    
    This probably needs to be refined a bit but its much better
    than the current HEAD handling -- none.
    rtomayko committed Nov 25, 2008
  4. @rtomayko

    misc TODO updates

    rtomayko committed Nov 25, 2008
  5. @rtomayko
  6. @rtomayko
Commits on Nov 3, 2008
  1. @rtomayko

    add doc:server take task - starts a doc development server

    The server rebuilds all documentation files before serving
    each request using the `rake doc' command. This makes hacking
    on doc a little more tolerable.
    rtomayko committed Nov 3, 2008
Commits on Nov 2, 2008
  1. @rtomayko
  2. @rtomayko

    handle responses with a Transfer-Encoding header

    While here, fix a few issues with an initial response from cache
    being different from subsequent requests. The Age and
    X-Content-Digest headers were not present in responses to initial
    requests.
    rtomayko committed Nov 2, 2008
  3. @rtomayko
  4. @rtomayko
  5. @rtomayko
Commits on Oct 28, 2008
  1. @rtomayko
Commits on Oct 25, 2008
  1. @rtomayko

    fix various issues with 304 response generation

    Fixes an issue with Safari/WebKit holding connections open when a
    304 Not Modified response was generated. The Content-Length,
    Content-Type, and other entity headers that are supposed to
    be omitted from the response were not being removed properly.
    
    Also, the cache was not sending 304 responses upstream in
    response to conditional GET requests with If-None-Match/Etag
    values. Not sure how I missed that until now.
    rtomayko committed Oct 25, 2008
  2. @rtomayko

    TODO update

    rtomayko committed Oct 25, 2008
  3. @rtomayko

    minor docfix

    rtomayko committed Oct 25, 2008
Commits on Oct 24, 2008
  1. @rtomayko
  2. @rtomayko
  3. @rtomayko
Commits on Oct 23, 2008
  1. @rtomayko
  2. @rtomayko
Commits on Oct 22, 2008
  1. @rtomayko

    fix memcached library detection

    rtomayko committed Oct 22, 2008
  2. @rtomayko

    minor doc additions

    rtomayko committed Oct 22, 2008
  3. @rtomayko
  4. @rtomayko