- From: Julian Reschke <julian.reschke@greenbytes.de>
- Date: Mon, 22 Apr 2002 20:39:06 +0200
- To: <tim@ellison.name>, "'Deltav WG'" <ietf-dav-versioning@w3.org>
> > From: ietf-dav-versioning-request@w3.org > > [mailto:ietf-dav-versioning-request@w3.org]On Behalf Of Clemm, Geoff > > Sent: 22 April 2002 19:02 > > To: 'Deltav WG' > > Subject: RE: Label header vs PROPFIND depth 1 > > > > > > From: Lisa Dusseault [mailto:ldusseault@xythos.com] > > > > Geoff said: > > > PROPFIND /a > > > Depth: 1 > > > Label: labeltest > > > Assuming /a is not version-controlled, then the effect of the Label > > > header is undefined, so your implementation could just ignore the > > > Label header and return the properties of /a, or it could indicate > > > that it is an error for /a. > > > > > > Since /a/b is version-controlled, the effect is defined by section > > > 8.6, and you would return the properties of the version labeled > > > "labeltest". > > > > This is interesting -- I thought that the RFC said that the label > > header must be ignored if the resource is not version-controlled. > > Thus, it would be *wrong* to return an error for /a. > > > > Lisa is of course correct. Section 8.3 covers this case. > > So yes, it must be ignored for a non-version-controlled resource, > > so it would be wrong to return an error for /a. > > Right, so imagine what kind of answer you would get back in the > multistatus -- some would be from the unversioned resource propfinds and > some from version propfinds, and you wouldn't know which were versioned > (without explictly looking for a live property to distinguishe > them), _and_ Yes -- I think this is what RFC3253 says. > it would contravene the 2518 depth result requirement I mentioned earlier. I don't think so. > a version-controlled resource for which the label doesn't exist? > > > > See section 8.6, the DAV:must-select-version-in-history precondition. > > It is an error if you request a label that does not exist on a > given VCR. So assume we have /a (collection, not-versioned), /a/b (not-versioned), /a/c (versioned, having a version labeled "x") and /a/d (versioned, without that label). I think we all agree that GET /a/c Label: x Should return the content of the version selected by the label x (including a vary header and probably a content-location header). GET /a/d Label: x will return 403 or 409 with an error element (precondition DAV:must-select-version-in-history failed). GET /a/b Label: x will just return b's content, and the vary header when present will NOT include "Label". Similarily, similar results will be returned for a PROPFIND/depth 0 on these resources. Note that the response element will be "/a/c" in the first case, even if the properties of a version with a different URI were reported. Finally, we have PROPFIND/depth 1 on /a: - as /a isn't version-controlled, the label header is ignored for *this* resource - Geoff and I claim that it *should* apply to the members then, so we'd get: <multistatus xmlns="DAV:"> <response> <href>/a</href> <propstat> <prop>...</prop> <status>HTTP/1.1 200 OK</status> </propstat> <response> <response> <href>/a/b</href> <propstat> <prop>properties of resource /a/b</prop> <status>HTTP/1.1 200 OK</status> </propstat> <response> <response> <href>/a/c</href> <propstat> <prop>properties of selected version</prop> <status>HTTP/1.1 200 OK</status> </propstat> <response> <response> <href>/a/d</href> <status>HTTP/1.1 409 Conflict</status> <responsedescription><error>must-select-version-in-history/></error></respon sedescription> <response> </multistatus>
Received on Monday, 22 April 2002 14:40:19 UTC