Subject: conditional methods and WebDAV

From: Arnaud Quillaud <[email-masked]>
Date: Wed, 08 Aug 2007 18:30:18 +0200

Hello,

HTTP defines a few conditional headers (if-* headers) and so does WebDAV (if header). In both cases those headers can be used "to make *a* method conditional". There is no table listing which method can be made conditional.
By reading between the lines one can guess that the if-* headers main purpose is for GET/PUT methods while if can be applied to pretty much any method but that is about it.

This brings up a few questions:
* is the choice to make one method conditional or not left to server implementations ?
* how can a client discover whether a particular method honor one of the if* headers (e.g. DELETE with if-match, PROPPATCH with if-unmodified-since or PROPFIND with if-modified-since) ?
* should the WebDAV if header be honored on all HTTP/WebDAV/*DAV methods ?

Thanks,

Arnaud Q

---

From: Julian Reschke <[email-masked]>
Date: Wed, 08 Aug 2007 22:13:24 +0200

> By reading between the lines one can guess that the if-* headers main purpose is for GET/PUT methods while if can be applied to pretty much any method but that is about it.

Yes.

> * is the choice to make one method conditional or not left to server implementations ?

Not really.

> * should the WebDAV if header be honored on all HTTP/WebDAV/*DAV methods ?

I'd say it should apply to all methods, but I'd be surprised if all 
servers get this right. See also current discussion over on the HTTP-WG 
mailing list about entity tags and methods such as PROPFIND/PROPPATCH.

Best regards, Julian