Re: The Depth header...

Peter Raymond <Peter.Raymond@merant.com> wrote:

> Hi,
>
> I have a few issues/questions surrounding the use of the depth header...
>
> As Geoff pointed out in his reply to my message on the Vary header, GET
> does not take a Depth header.  This would have been really useful, this
> came up in one of our deltav study groups here in MERANT...the scenario
> was this:
>
> You are a Working-Resource based client and are using labels to identify
> files to be used in a build (this is a common use of labels, the label
> selects which versions are to be included in a build).
>
> If we could do a GET with a Depth header and supply the label in the
label
> header then in one operation we could retrieve all files needed for the
build.
> Since the spec does not allow Depth on GET we would have to do a PROPFIND
> to get the DAV:label-name-set (or do a DASL query) and then issue
multiple
> GET methods specifying the label header.
> Why was depth not defined on the GET method? Seems like a really useful
> feature.

In principle there is no problem doing a deep GET, however in practice it
would likey result is a huge response being sent by the server.  That
response would have to be in multi-part MIME format to indicate the types
of the resources that were being returned; and it would not lend itself to
hitting caches maintained by all commonplace proxies.

Given that Depth: does not guarantee an atomic operation (i.e., the results
may be skewed over time) the only advantage is the reduction in GET
requests.  Since GET has no body and can be pipelined for multiple
collection members I don't think it is a huge overhead.

> The second issue I have with the depth header is they way it is defined
> inconsistently on each method that uses it....for example on the UPDATE
> method if depth is not specified then Depth: infinity is assumed...

I don't have the spec in front of me right now, but that doesn't sound
good?!

> on the
> LABEL method if depth is not specified then Depth: 0 is assumed.  It
would
> make server implementation cleaner if we could always assume Depth: 0 in
> the absence of a Depth header.  This also seems logical, if the client
does
> not ask for Depth then apply the operation only to the request resource.
> Why not make the default behaviour of depth consistent?

Rather than be consistent I think we should look at each method and decide
which makes the 'best sense' for that method.

Regards,
Tim

Received on Friday, 7 September 2001 05:40:27 UTC