[ 
https://issues.apache.org/jira/browse/COUCHDB-2259?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson resolved COUCHDB-2259.
------------------------------------

    Resolution: Not a Problem

> CouchDB 1.6.0 returns wrong Vary
> --------------------------------
>
>                 Key: COUCHDB-2259
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-2259
>             Project: CouchDB
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: HTTP Interface
>            Reporter: Kaj Nielsen
>
> CouchDB documents are immutable.  Even when deleted, a new revision is 
> assigned to the document (and the _deleted flag is set).
> As such, HTTP requests for specific document revisions, by use of the 
> If-Match header, are cacheable.
> HTTP requests with no revision numbers are not cacheable.
> Therefore, for If-Match requests, the correct caching headers are:
>  - Vary: If-Match
>  - no Cache-Control header (or a default value, eg. 24hrs)
> And for "non-revisioned" requests, the correct headers are:
>  - Vary: If-Match
>  - Cache-Control: must-revalidate
> However:
> > GET /db/doc HTTP/1.1
> > Host: localhost:5984
> > If-Match: 167-37f82fdbfdc49d38b1c66815deb1e338
> > 
> < HTTP/1.1 200 OK
> < Server: CouchDB/1.6.0 (Erlang OTP/R15B01)
> < ETag: "167-37f82fdbfdc49d38b1c66815deb1e338"
> < Date: Tue, 24 Jun 2014 22:34:20 GMT
> < Content-Type: text/plain; charset=utf-8
> < Content-Length: 649
> < Cache-Control: must-revalidate
> < 
> ...
> As seen above, even when requesting a very specific revision of a document, 
> CouchDB still requests revalidation with "must-revalidate".
> Thereby making modern HTTP caches unable to take advantage of caching the 
> (potentially large) body of HTTP transactions that are perfectly cacheable 
> (because the request include If-Match).
> Also, CouchDB incorrectly  does not discern the request from a non-revisioned 
> request with regards to the "must-revalidate" cache-control header.  
> "must-revalidate" should not be set on responses where If-Match is present in 
> the request.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to