RE: three clarification questions on the If header.

> -----Original Message-----
> From: Jim Davis [mailto:jdavis@parc.xerox.com]
> Sent: Friday, September 11, 1998 3:00 PM
> To: w3c-dist-auth@w3.org
> Subject: three clarification questions on the If header.
> 
> 
> For the following questions, assume a collection C contains 
> resource R, and
> suppose C is locked at Depth 0.  Assume that resource S does 
> not exist.
> 
> 1. Is it true that the lock on C has no effect on doing a PUT 
> to R?  (The
> protocol in 7.10.2 is clear that it affects ability to add or remove
> members, but says nothing about changing existing ones.)
> 

Yes, it is true.

> 2. In 8.4.1, which says "If a method, due to the presence of 
> a Depth or
> Destination header, is applied to multiple resources then the 
> No-tag-list
> production MUST be applied to each resource the method is 
> applied to", what
> is the significance of "due to the presence of a Depth or 
> Destination header"?
> 
> Can a method be applied to multiple resources in any other 
> way?  It seems
> to me that it can.  Consider a PUT to S (which does not yet exist).
> Certainly the PUT applies to S.  Does it also "apply" to C?  
> It seems to me
> that it does, or else why would the client have to pass the 
> state token for
> the lock on C?
> 
> Will someone please clarify 8.4.1?
> 

To apply a method is a very specific term in HTTP and means that the method
directly effects the state of one or more resources. The lock token
submitted on a request for S does NOT effect the state of C. Rather it
allows S's state to be effected as a consequence of confirming knowledge of
C's state. On the other hand, issuing a DELETE on C most certainly effect's
S's state since the method can not succeed unless S gets nuked. Thus I
believe the section is absolutely crystalline clear.

> 3.  In the case where the client has a lock on C, but no lock 
> on R, and
> does not have the etag for R, is it possible for a client to use an
> _untagged_ production in the If header to pass the lock token 
> on the C?
> 
> If so, I don't see how to implement it.  The production 
> matches the state
> of C, but it will not match the state of R, so it will fail, 
> and hence the
> PUT will fail.
> 
> If this is right, it seems to me that the protocol document 
> should say that
> a client SHOULD use tagged productions when the set of 
> affected resources
> is known in advance and is small (as in this case) and it 
> should explain
> the potential problem with using the no tagged production.  Otherwise,
> clients will fail and programmers will be puzzled.
> 
> If this is wrong, then a clarification in 8.4 is in order.
> 

This example is too vague to properly respond to. You need to specify what
method you are executing, what sort of lock you have on C, what its depth
is, etc. and why you need to refer to C's lock in order to execute your
method on R.

Received on Friday, 11 September 1998 22:26:32 UTC