WebDAV Bindings - Issue Yaron.BindSyntax

The BIND spec defines that a binding is created by sending a message to the
source and instructing it to create a binding at the destination. This is
completely consistent with how WebDAV normally operates in methods such as
COPY/MOVE where the source is instructed to make changes at the destination.
Unfortunately, in the case of BIND, it introduces a very serious problem
when (not if, but when) we introduce weak bindings. The problem is that the
current bind syntax requires the active participation of the source to
create a bind at the destination. In the case of a weak binding it is
expected that the source may not even be aware of the binding. This is one
of the main benefits of introducing weak bindings, it allows for bind like
behavior without requiring the participation of the source. This enables
many resources to have weak bindings against a resource without overloading
the resource.

An example may help here. Imagine a user wants to create a weak binding to
http://www.yahoo.com/foo/bar. Currently, to create this weak binding, the
user would have to issue the bind method to http://www.yahoo.com/foo/bar and
ask the Yahoo server to somehow communicate with the destination server and
create a weak binding. This is like telling people that before they can add
a hyperlink to their HTML document they have to first get the resource
pointed to by the hyperlink to somehow participate in the process. The
ability to link to resources without the knowledge of the source (as the
term is used in the BIND method) has been one of the key aspects of the
scalability of the Web.

In my mind the proper solution is to introduce a source header that, when
used on a BIND method, would mean that the request-URI specifies the
destination rather than the source.

That having been said I really have no desire to prolong the agony of the
BIND authors by asking them to add a new header and deal with all the
complexities it would introduce. As such I am happy to settle for the
following paragraph being added to section 5.1: "The BIND method MUST fail
if it does not include a destination header. Note, however, that future
specifications MAY introduce additional headers that resources could honor
in the place of the destination header and so allow the BIND method to
succeed in the absence of a destination header."

This would allow us, in the future, to introduce a weak binding spec that
could still use the BIND method without forcing us to use MAN or introduce a
new method.

Received on Sunday, 16 January 2000 20:47:54 UTC