- From: Chris Knight <Christopher.D.Knight@nasa.gov>
- Date: Fri, 11 Jul 2003 14:24:54 -0700
- To: Julian Reschke <julian.reschke@gmx.de>
- CC: "'w3c-dist-auth@w3.org'" <w3c-dist-auth@w3.org>
Reading this discussion has brought up another point of confusion that
may need clarification in the spec. If you have a binding loop and you
are doing a Depth: infinity PROPFIND, you either (correct me if I'm
wrong, 'course):
a) return a 506 Loop Detected error
b) return a 207 Multistatus containing responses and when you come
across loops, identify them as such with a 506 Loop Detected
What's unclear to me (perhaps due to the example given in the spec) is
that, in the second case, do you continue traversing the tree when a 506
is encountered or do you terminate traversal?
For example, if you had the following example:
--C-
v |
1-A->2-B->3
-D->4
Sorry for the poor ASCII graphics and it's probably unreadable. The
numbers represent unique resources (think of them as resource id's.) The
textual description is that the root collection "/" contains two members
"/A" and "/D". "/A" contains one member "/A/B" and "/A/B" contains one
member "/A/B/C" which is bound to "/A" (resource id 2).
Now, presuming we do a depth-first search and we go down "/A/B" first,
we would report a 200 for "/A", a 200 for "/A/B", a 506 for the loop
"/A/B/C", and a 200 for "/A/D". Correct? Or do I report a 200 for
"/A/B/C" and then a 506 for the fact that "/A/B/C" created a loop?
How would I tell where the loop connected to? (i.e. how do I tell the
loop goes back to resource id 2 and not 1?) Would I do a followup
PROPFIND on "/A/B/C" to determine the resource id? What if I got back 10
506 responses?
Would it be possible (correct) to either report a 200 for "/A/B/C"
(containing the resource-id property) and then a 506? Or perhaps a
"Resource-ID" HTTP header in the 506 response?
This is important if we want clients to be able to replicate loops
across servers.
Received on Friday, 11 July 2003 17:40:29 UTC