Yeah... I implemented those headers for the _uuids handler, since everyone wanted stronger assurances that browser/proxies. We may want to move that code into a more central place, if more handlers need those headers...
On Mon, Feb 16, 2009 at 7:59 AM, Vinay Sajip (JIRA) <[email protected]> wrote: > HTTP caching headers don't provide expected behaviour > ----------------------------------------------------- > > Key: COUCHDB-257 > URL: https://issues.apache.org/jira/browse/COUCHDB-257 > Project: CouchDB > Issue Type: Bug > Components: HTTP Interface > Affects Versions: 0.8.1, 0.9 > Environment: Server: Ubuntu Hardy on x86. Client: Windows XP (32-bit). > Reporter: Vinay Sajip > Priority: Minor > > > The HTTP caching headers currently put out cause IE (for example) to not > display information correctly in Futon. It's easy to reproduce: I open > windows in Firefox and IE simultaneously, do an update using Firefox (e.g. > add a new document) and refresh the IE window. The updated document count is > not shown. If I clear the browser cache and try again, the updated > information is displayed. The HTTP header put out is > > Cache-Control: must-revalidate > > which seems to me insufficient - for IE, at least. Is there way of > configuring these headers, to for example > > Cache-Control: no-cache > Pragma: no-cache > Expires: some date in the past, or the same value as the Date: header > > Christopher Lenz has said about this that "This is due to extra-aggressive > (and against the HTTP spec) caching that IE does on XMLHTTPRequests. A > patch would need to do user agent sniffing to conditionally add the "cache: > false" parameter to the jQuery ajax() invocations in jquery.couch.js (and > maybe elsewhere). I wouldn't want to add this for all user agents, as it > basically circumvents any caching for AJAX requests (even for > not-craptastically-broken implementations), and thus would add quite a bit > of unnecessary overhead." > > To this, I would comment that I don't believe a patch to the client-side code > in Futon would be sufficient. There are other clients out there, some of > which will be on Windows and so by default use the (acknowledgely broken) > Microsoft stack. In my view it is more important to err on the side of > correctness than performance - so I believe the headers generated server-side > need to change, as well as perhaps Futon client-side changes. > > I note that handle_uuids_req in couch_httpd_misc_handlers.erl uses the > no-cache/Expires scheme I mention. > > -- > This message is automatically generated by JIRA. > - > You can reply to this email to add a comment to the issue online. > >
