On Sun, 2003-09-14 at 22:59, Bjorn Stabell wrote:
Dieter wrote:
Please read the HTTP 1.1 spec...
Caching requires either an "ETag" or "Last-Modified" header. For good reasons...
That would explain why it never got "fixed", but that's not how I understand the RFC: http://www.w3.org/Protocols/rfc2616/rfc2616.html
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.21 http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html#sec13.2 Indicates that "Expires" is enough to make content cacheable, and that it should be considered "fresh" until its expire time unless clients or servers use cache-control headers to force a revalidation.
Last-Modified and Etag are used to validate the content after it expires using If-Modified-Since and If-None-Match respectively.
Is there a thread discussing this already somewhere?
[ Btw, Zope does return an empty Etag header; does that cause any confusion? ]
I have a report that it does, at least for one hardware-based cache; I added a feature to z2.py for a client to turn this off. The empty E-tag exists to support *very* broken clients (MSOffice over WebFolders); it should be removed, perhaps with a knob which allows re-enabling it for the sites that actually have people editing content using those clients. A proposal to allow setting the header in a more useful way would be welcome. Tres. -- =============================================================== Tres Seaver tseaver@zope.com Zope Corporation "Zope Dealers" http://www.zope.com