On Thu, Aug 18, 2005 at 03:56:48PM -0700, Wilfredo Sánchez Vega wrote:
>   The spec for If-{None-}Match and If-{Un}Modified-Since is driving  
> me batty.
> 
>   The biggest item has to do with having to know the response code  
> for the request without processing the request.  Specifically, 14.24  
> (If-Match) and the others have a requirement like:
> 
>         If the request would, without the If-Match header field,  
> result in
>         anything other than a 2xx status, then the If-Match header  
> MUST be
>         ignored.

I could make a wild guess that this is an attempt to specify some 
evaluation precedence to the header; so e.g. if you know you have to 
issue a 400 because the request is otherwise syntactically invalid, then 
you must ignore the if-match.  Likewise for a 401.  But it doesn't seem 
to make much sense as a MUST requirement, agreed.

>   Next up, 14.25 (If-Modified-Since) implies in the first paragraph  
> that it applies to all methods, but then only proceeds to describe  
> what to do with a GET, and even then, a GET with no Range header.  If  
> I get an IMS for a PUT, is that a valid request?  How about a DAV  
> COPY?  Presumably in that case would apply, if valid, to the source  
> resource, not the destination.

Yes, it should be valid for all methods certainly - it just applies to 
the resource identified by the request-uri, regardless of method; so 
that is the source for a COPY and MOVE, indeed.  (iirc the I-M-S/I-U-S 
headers do work properly with mod_dav, but not the if-match ones)

joe

Reply via email to