WebDAV response status codes

While I was adding the WebDAV status code to the Apache source base,
I noticed a couple things that don't fit the HTTP design.

General:  In several places, the protocol describes responses in terms
of the response phrase, as in "The Method Failure status code", instead
of the actual status code.  In the HTTP specifications, the reason phrase
is never used in a normative context, and is instead included in parentheses
after the status code number.  This is because the phrase is only a comment
and not part of the protocol.

Section 9: (editorial)
Each of the status codes are described as if they were being inserted
in the main HTTP/1.1 specification, which is very terse.  WebDAV does
not need to be this terse, and should at a minimum introduce the status
code in the body text before each definition.

9.5  424 Method Failure

   The method was not executed on a particular resource within its
   scope because some part of the method's execution failed causing the
   entire method to be aborted.  For example, if a command in a
   PROPPATCH method fails then, at minimum, the rest of the commands
   will also fail with 424 Method Failure.

There are three problems here:

   1) 424 is never used by WebDAV as a status code.
   2) The above has the semantics of a 5xx response, even though the
      dependency was part of the client request.
   3) The reason phrase does not help the reader understand the code.

My suggestion is that either 424 be replaced by a non-HTTP construct in
the XML of a 207 response, or that you define the status code so that
it has some meaning significant to HTTP.  For example

   424 Failed Dependency

   The 424 (Failed Dependency) status code means that the method could
   not be performed on the resource because the requested action depended
   on another action and that other action failed.  For example, if a
   command in a PROPPATCH method fails then, at minimum, the rest of
   the commands will also fail with a 424 response.


9.6 425 Insufficient Space on Resource

   The resource does not have sufficient space to record the state of
   the resource after the execution of this method.

4xx responses are reserved for errors by the client.  This is not an
error by the client.  Also, a 'resource' in HTTP does not have space.
If you want these semantics as a status code, then the correct definition
would be something like

   507 Insufficient Storage

   The 507 (Insufficient Storage) status code means that the method could
   not be performed on the resource because the server is unable to store
   the representation needed to successfully complete the request.  This
   condition is considered to be temporary.  The request MUST NOT be
   repeated until it is requested by a separate user action.

I'd like these to be fixed before draft 09.

....Roy

Received on Monday, 12 October 1998 19:18:11 UTC