[Zope-Coders] RFC: Remove funky WebDAV hackery?

Brian Lloyd brian@zope.com
Wed, 7 Aug 2002 16:42:57 -0400


> There are at least three places in the Zope2 source tree which make
> weird changes to the response object, presumably to support flaky
> Borg-ish clients.
> 
>   ZServer/HTTPResponse.py -- injects an empty 'Etag:' header, if the
>     response hasn't set one explicitly.  This behavior is totally
>     unhelpful;  an empty Etag can't be used properly to do *anything*
>     that Etags are for;  I am guessing that some client (the way-brokey
>     WebFolders, perhaps?) won't do WebDAV unless an Etag is present?
> 
>   lib/python/webdav/{Collection,Resource} -- 'dav__init'
>     sets a weird, custom header,'MS-Author-Via', to 'DAV';  again, I
>     presume this permits some flaky client to work well with the
>     object handling the request.
> 
> The first change in particular is obnoxious;  some caches may refuse to
> cache pages with empty Etags, because they cannot be validated.  The
> second change could be less obnoxious if it was only done in the
> presence of the broken clients.
> 
> Can anyone shed further light on this?

You'd have to look back through the collector on the 
first one; I fuzzily remember Andreas adding that to 
resolve some DAV client problem (which one I don't 
remember). If it is causing actual cache problems we 
could consider taking it out (or doing it in a smarter 
way), but we'd need to go back and find out what the 
effect of that would be first.

As for dav__init, yes, the nasty 'MS-Author-Via' is needed 
for all kinds of MS DAV support to work. Hopefully they 
don't rely on that anymore in more recent versions of their 
DAV-aware software, but older stuff requires it.


Brian Lloyd        brian@zope.com
V.P. Engineering   540.361.1716       
Zope Corporation   http://www.zope.com