W3C home > Mailing lists > Public > ietf-dav-versioning@w3.org > April to June 2002

RE: Label header vs PROPFIND depth 1

From: Tim Ellison <tim@ellison.name>
Date: Tue, 23 Apr 2002 11:16:07 +0100
To: "'Deltav WG'" <ietf-dav-versioning@w3.org>
Message-ID: <FDEHJMOEIDFPFLBKEICGGEHGCGAA.tim@ellison.name>
I agree that there is no point in getting into the details unless we agree
whether a version is a variant of a checked-in version-controlled resource.
Once we get agreement on that we can go through the remainder of the issues
and use that as a guidepost.

So, you think it is a variant, and I think it isn't.

Anybody else like to chip-in?  (anybody else following this or has everyone
else gone home<g>?)

Regards,
Tim

> -----Original Message-----
> From: Julian Reschke [mailto:julian.reschke@greenbytes.de]
> Sent: 23 April 2002 10:42
> To: tim@ellison.name; 'Deltav WG'
> Subject: RE: Label header vs PROPFIND depth 1
>
>
> Tim,
>
> before going into details, I'd like to repeat that the way the
> label header
> is defined makes the selected revision a variant of the VCR. That's what
> RFC2616 says, and IMHO there's no way to avoid that.
>
> If you strongly feel that this is a problem (I may agree), than the label
> header should be removed from the spec (deprecated in the issues
> list), and
> we should go back looking at the original requirements it's supposed to
> handle.
>
> > From: ietf-dav-versioning-request@w3.org
> > [mailto:ietf-dav-versioning-request@w3.org]On Behalf Of Tim Ellison
> > Sent: Tuesday, April 23, 2002 10:58 AM
> > To: 'Deltav WG'
> > Subject: RE: Label header vs PROPFIND depth 1
> >
> >
> > Juliam wrote:
> >
> > > > 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.
> >
> > From your example below I see that you envisage the hrefs being
> > those of the
> > version-controlled resource (even though the properties come from the
> > labelled version).
> >
> > This is too confusing.  Al the existing code that people write to
> > associate
> > the href with the properties would have to be re-written as the reported
> > properties are from a different resource to the href.
>
> No, they aren't. They are from a specific variant of the VCR (as
> defined by
> HTTP).
>
> > > > 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).
> >
> > Agreed -- I think we specify a Location: header, but whatever
> > (i.e. resource
> > location, not content location).
>
> I think content-location is correct:
>
> "The Content-Location entity-header field MAY be used to supply
> the resource
> location for the entity enclosed
> in the message when that entity is accessible from a location
> separate from
> the requested resource’s URI. A server
> SHOULD provide a Content-Location for the variant corresponding to the
> response entity; especially in the
> case where a resource has multiple entities associated with it, and those
> entities actually have separate locations by
> which they might be individually accessed, the server SHOULD provide a
> Content-Location for the particular
> variant which is returned."
>
> while the RFC says for location:
>
> "The Location response-header field is used to redirect the recipient to a
> location other than the Request-URI
> for completion of the request or identification of a new resource. For 201
> (Created) responses, the Location is that
> of the new resource which was created by the request. For 3xx
> responses, the
> location SHOULD indicate the server’s
> preferred URI for automatic redirection to the resource. The field value
> consists of a single absolute URI."
>
> > > GET /a/d
> > > Label: x
> > >
> > > will return 403 or 409 with an error element (precondition
> > > DAV:must-select-version-in-history failed).
> >
> > Agreed.
> >
> > > GET /a/b
> > > Label: x
> > >
> > > will just return b's content, and the vary header when
> present will NOT
> > > include "Label".
> >
> > Can I hedge on the vary: header in the response?  Given that
> the GET cache
> > may be invalidated by the resource /a/b coming under version
> control, and
> > acquiring a label, I may be inclined to believe that we should
> > return a vary
> > header for every label: request for a version-controlled or versionable
> > resource.
>
> I think this is right. Which means that vary: label must be set
> upon GET on
> *any* resource that is versionable (on a server supporting the LABEL
> feature).
>
> > > 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.
> >
> > No.  I think the href must be for the version resource selected by the
> > label, not the version-control resource at the request-URI.
>
> Nope. You can't do that. This breaks PROPFIND. HTTP offers you:
>
> - variants (representations) of the resource, which will have the
> same URI,
> or
>
> - redirects (where the request is redirected to a different URI).
>
> You can't have both.
>
> > > 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:
> >
> > ...and I say it shouldn't apply to members, otherwise the result will
> > contain properties from resources that are not in the same collection
> > membership hierarchy, and thereby contravene 2518 (as well as
> > complicate the
> > result enourmously).
>
> RFC2518:
>
> "Consequently, the multistatus XML element for a collection resource with
> member URIs MUST include a response XML element for each member URI of the
> collection, to whatever depth was requested. Each response XML
> element MUST
> contain an href XML element that gives the URI of the resource on
> which the
> properties in the prop XML element are defined. Results for a
> PROPFIND on a
> collection resource with internal member URIs are returned as a flat list
> whose order of entries is not significant. "
>
Received on Tuesday, 23 April 2002 06:28:18 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 8 January 2008 13:57:43 GMT