[ 
https://issues.apache.org/jira/browse/COUCHDB-257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12674003#action_12674003
 ] 

Christopher Lenz commented on COUCHDB-257:
------------------------------------------

Disabling all client (and proxy) caching sounds like a really bad idea to me. 
This isn't just about using Futon via IE6, it's about the primary (and 
basically only) method for talking to CouchDB. We don't want to punish all 
clients (and thus all CouchDB applications) just because IE is broken. And 
we're putting in extra work in other places to have e.g. useful Etag support, 
which would be a complete waste if we made the change you're proposing.

Also, this particular bug with IE over-aggressively caching responses applies 
only to AJAX requests AFAIK. If you request any of the CouchDB requests 
directly through the Win HTTP stack, you should see the "Cache-Control: 
must-revalidate" and "Etag" headers getting properly respected.

I stick to my opinion that this should be handled on the client side, with some 
browser-sniffing thrown in for good measure.

> 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
>         Attachments: caching-header-patch.diff
>
>
> 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.

Reply via email to