Examples of Redirect

The purpose of this post is to elaborate on an issue raised during last
week's IETF meeting. Specifically, the issue is how redirection to other
search arbiters would be supported through DASL. 

The proposal is to re-use the multistatus response with a 400 error code for
the entire response and a 303 response in the multistatus xml.

For example, if a request to search arbiter A names some scope X (and
assuming A knows how to redirect) it can redirect a client to search arbiter
B as shown below ...

HTTP/1.1 400 Bad-Request
Content-Type: text/xml   
Content-Length: xxxxx

<?xml version="1.0" ?>
<?xml:namespace ns="DAV:" prefix="d" ?>

<d:multistatus>
	<d:response>
		<d:href>http://www.foo.com/X</d:href>
          		<d:status>HTTP/1.1 303 See Other</d:status>
		<d:scopeerror/>
		<d:redirectarbiter>http://bar.com/B</d:redirectarbiter>
	</d:response>
</d:multistatus>

This makes use of the result codes already defined in HTTP/1.1 (although we
can debate about which is the best one to use) and the multistatus defined
in WEBDAV (which is easily extended to multiple redirects in a single error
response.)

Two new elements are introduced to fully describe the redirect:
- The DAV:scopeerror element indicates that the response is a problem with
the scope.
- The DAV:redirectarbiter allows the original search arbiter to suggest
others.

This will need some fine-tuning, of course, but brings us closer to a
redirect mechanism that is a natural fit to existing practices and will
extend to our future needs.

-Saveen

Received on Wednesday, 2 September 1998 16:22:01 UTC