W3C home > Mailing lists > Public > ietf-http-wg@w3.org > July to September 2004

Re: FYI: I-D ACTION:draft-dusseault-http-patch-02.txt

From: Roy T.Fielding <fielding@gbiv.com>
Date: Fri, 9 Jul 2004 15:33:37 -0700
Cc: ietf-http-wg@w3.org
To: Lisa Dusseault <lisa@osafoundation.org>
Message-Id: <052FDE43-D1F8-11D8-86E6-000393753936@gbiv.com>

On Friday, July 9, 2004, at 12:53  PM, Lisa Dusseault wrote:
> I find that client implementations generally act in ways that they 
> find the server can be predictable.  With what you describe, a client 
> implementor can write this code
>
>   Try PATCH on known empty resource
>     trap error {
>      send PUT
>    }
>
> Or:
>
>   Send PUT on known empty resource
>
> Gee, which is simpler...

That depends on the application.  There is nothing preventing the client
from making that decision on its own, so there is no reason for the
protocol to standardize one over the other.  Likewise, some servers
may choose to allow PATCH but not PUT (for resources that only allow
a certain type of modification, for example).  The protocol does not
need to be restricted to the common case.

> So the predictable thing for PATCH would be to either to have 
> consistent and predictable behavior for the method with all patch 
> types, OR at least to have consistent and predictable behavior for a 
> given patch type.

You can't require that a server accepts a request.  Whether it is PATCH
or PUT, empty or existing, the only thing the protocol can do is state
the syntax and meaning of the messages.  A reasonable thing to specify
is that if a server is willing to accept a PATCH on a URI that has no
current representations, then its behavior must be consistent with the
patch being applied to an empty representation.

The client can choose which method to use on its own, based on its own
environment and its own constraints.

....Roy
Received on Friday, 9 July 2004 18:33:10 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 27 April 2012 06:49:35 GMT