Re: Gen-ART LC review of draft-dusseault-http-patch-15.txt

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




--On Sunday, November 15, 2009 14:54 -0800 "Roy T. Fielding"
<fielding@xxxxxxxx> wrote:

> On Nov 15, 2009, at 12:03 PM, John C Klensin wrote:
>...
>> We should not be adopting a "patch" protocol that lacks both
>> the tools for, or a serious discussion of, transactional
>> integrity.
> 
> John, HTTP is not SQL.  The transactional integrity is inside
> the resource implementation.  The entire transaction consists
> of a single request message and a single response message.
> HTTP is responsible for the communication interface, not the
> implementation of specific resources, and cannot proscribe a
> specific transaction semantic because it is NOT WANTED by
> many resources.

Roy, I certainly agree with the first part of this.  HTTP is not
SQL.  If it were, I (at least) would be loudly insisting on an
integrity mechanism.  However, normal IETF practice includes
being explicit about issues and traps with specifications.  So,
while it is plausible to take the position you express above,
that just about requires that the specification explicitly
indicate that verifying transactional integrity is the
responsibility of the calling application.  I'm also suggesting
that it should at least point to ways to do that.   The
paragraph in Security Considerations (Section 5) that reads:

	"A document that is patched might be more likely to be
	corrupted than a document that is overridden in
	entirety, but that concern can be addressed through the
	use of mechanisms such as conditional requests using
	ETags and the If-Match request header."

is not, IMO, adequate in that regard, at least absent a
normative reference.  It is also the key to the issue as I see
it: while POST can be used to simulate PATCH, the normal and
obvious use of POST is to supply some information to the server
or to replace ("override") an entire document, PATCH would seem
to have, well, patching as its primary purpose.  

> For example, a collaborative whiteboard in which many people
> are patching at once, the patches consisting of context diffs
> that are internally capable of distinguishing conflicts, would
> be impossible to implement via standard etag behavior.

Sure.  So say that in the document.   My problem is _not_ with
the mechanism, it is with what you apparently assume people will
figure out for themselves or learn through oral tradition.

> Standard etag conflict resolution is not required because
> it is not desirable for many applications of PATCH.  For
> other applications of PATCH, it is already defined by HTTP
> and does not need to be reiterated here.

We disagree.  I believe it does "need to be reiterated here",
either in-line or by an explicit, normative, pointer to the
relevant portion of the HTTP spec.

    john

_______________________________________________
Ietf mailing list
Ietf@xxxxxxxx
https://www.ietf.org/mailman/listinfo/ietf

[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Fedora Users]