- From: Dylan Barrell <dbarrell@opentext.ch>
- Date: Tue, 3 Feb 1998 10:58:13 +0100
- To: "'Yaron Goland'" <yarong@microsoft.com>, "'WebDAV'" <w3c-dist-auth@w3.org>
I have been waiting for someone to complain about not being able to have the verbose information but it seems as though silence indicates that it is not needed although I could imagine some users finding this information useful. Cheers Dylan -----Original Message----- From: Yaron Goland [SMTP:yarong@microsoft.com] Sent: Friday, January 30, 1998 7:55 AM To: 'Dylan Barrell'; 'WebDAV' Subject: RE: v6 comments - multistatus responses I think the verbose header is unnecessary as is the current response format, it is an artifact of design decisions made regarding PROPFIND/PROPPATCH where there were very good reasons for returning everything. I suspect that a more basic question is: What sort of response information does one need from DELETE/COPY/MOVE? Success information is only useful in the context of your next command. That is, I successfully deleted a/b so I don't need to copy it to the backup disk. However given the lack of atomic operation any supposition made in the next command as a result of responses from the previous command are generally dangerous. That is, you may have just deleted a/b but someone else may just have created a new a/b and so you will need to back it up. As such I would argue that success information other than a summary "I did what I was told" is useless. Failure information, however, is different because it can be used to fix a problem. For example, imagine trying to delete a/b and getting back a 401 Unauthorized. At that point there is something one can do to actually fix the problem. However, failure information based on the namespace, that is, a/b could not be moved so a/b/c and a/b/d did not get deleted, is not terribly useful as it all reflects the same basic problem. Given the previous I am proposing the following changes to the specification: COPY/MOVE/DELETE - Only return 4xx and 5xx codes but NEVER 424 Method Failure So the example in 7.8.2.1 would be: >>Request DELETE /container/ HTTP/1.1 Host: www.foo.bar >>Response HTTP/1.1 207 Multi-Status Content-Type: text/xml Content-Length: xxxxx <?xml version="1.0"?> <?namespace href="http://www.iana.org/standards/dav/" as="d"?> <d:multistatus> <d:response> <d:href>http://www.foo.bar/container/resource3</d:href> <d:status>HTTP/1.1 425 Locked</d:status> </d:response> </d:multistatus> The Copy example becomes >>Request COPY /container/ HTTP/1.1 Host: www.foo.bar Destination: http://www.foo.bar/othercontainer/ Depth: infinity Content-Type: text/xml Content-Length: xxxxx <?xml version="1.0"?> <?namespace href="http://www.iana.org/standards/dav/" as="d"?> <d:propertybehavior> <d:keepalive>*</d:keepalive> </d:propertybehavior> >>Response HTTP/1.1 207 Multi-Status Content-Type: text/xml Content-Length: xxxxx <?xml version="1.0"?> <?namespace href="http://www.iana.org/standards/dav/" as="d"?> <d:multistatus> <d:response> <d:href>http://www.foo.bar/othercontainer/R2/</d:href> <d:href>http://www.foo.bar/othercontainer/R2/D2</d:href> <d:status>HTTP/1.1 412 Precondition Failed</d:status> </d:response> </d:multistatus> etc. Any objections? Yaron > -----Original Message----- > From: Dylan Barrell [SMTP:dbarrell@opentext.ch] > Sent: Thursday, January 29, 1998 10:51 AM > To: 'WebDAV' > Subject: v6 comments - multistatus responses > > The multistatus responses are too verbose. For example the MOVE of a very > large subtree (thousands or hundreds of thousands of children) will result > in a multistatus entry for each successfully and each unsuccessfully moved > resource. The same applies to many of the other methods. > > I think the responses should operate on the principle of "no news is good > news" and only contain entries for the resources which could not be > processed. They should also not include entries for resources which could > not be processed as a result of not being able to process another resource > (for example the DELETE method states that if a resource cannot be deleted > none of its ancestors may be deleted). > > I think that a verbosity header should then be added which will allow a > client to request the fully verbose multistatus response - the default > should however be non-verbose. > > The verbose header would be defined as follows: > > Verbose = "Verbose" ":" ( "T" | "F" ) > > The Verbose header specifies whether any multistatus response generated by > the request should generate entries which correspond to successfully > processed resources. A value of "T" indicates that the successful > multistatus entries MUST be generated. A value of "F" indicates that the > multistatus response will only contain entries for the unsuccessfully > processed resources. If the header is not present, then the server SHOULD > default to a value of "F". > > If the Verbose header has a value of "F", and there are no errors to be > reported, then the server MUST succeed with a 200 OK status code.
Received on Tuesday, 3 February 1998 10:36:17 UTC