Subject: Re: text of description of "POST"

From: Mark Baker <[email-masked]>
Date: Tue, 23 Apr 2002 12:42:59 -0400

Oops, sorry, this one slipped by my radar until now.  I'll
redirect my response to [email-masked].

On Thu, Apr 04, 2002 at 07:22:39PM -0800, Larry Masinter wrote:
> Section 9.5 of RFC 2616 says:
> 
>    The POST method is used to request that the origin server accept the
>    entity enclosed in the request as a new subordinate of the resource
>    identified by the Request-URI in the Request-Line.
> 
> Now, later on in the section it notes that POST covers other cases, e.g.,
> 
>       - Providing a block of data, such as the result of submitting a
>         form, to a data-handling process;
> 
> but some people have taken the first sentence to be somehow
> definitional. ("is used" turning into "is only used" rather than
> "may be used").
> 
> So I would suggest changing this wording -- and even putting up an
>  errata -- that "The POST method is used to request that the origin
>  server accept the entity enclosed in the request as data to be
>  processed by the resource identified by the Request-URI in the
>  Request-Line."

I'll all for cleaning up the definition of POST, but IMO, proceeding
with text that has most often been cited by those who tunnel over POST
(IPP, SOAP), is the wrong way to go.

I could perhaps go for this definition if it were amended to say
something like; 

 "The POST method is used to request that the origin server accept
  the entity enclosed in the request as data to be processed by
  the resource identified by the Request-URI in the Request-Line.
  The entity SHOULD NOT include any instruction or direction to
  perform an action other than simple form-like submission."

MB
-- 
Mark Baker, Chief Science Officer, Planetfred, Inc.
Ottawa, Ontario, CANADA.      [email-masked]
http://www.markbaker.ca   http://www.planetfred.com

---

From: Scott Lawrence <[email-masked]>
Date: 24 Apr 2002 14:48:46 -0400

>   perform an action other than simple form-like submission."

HTTP has been plagued by this debate for a long time.  I'd prefer to
make the spec clearer with respect to correct implementation of the
protocol as measured by success in interoperability.  The existing
wording clearly fails this test (in that it attempt to create some
sort of abstract notion using the term 'subordinate' in a way most
people don't seem to understand).

Your suggested wording adds a 'SHOULD NOT' that is not motivated by an
interoperability issue - it is an expression of a policy preference:
that other protocols should not be tunneled over HTTP.  As such, I
don't think it improves the clarity of the specification (especially
since it does not make that motivation clear, leaving the reader to
wonder _why_ one should not use it in that way, and because 'simple
form-like submission' is hardly a tight distinction).

I think that the changes Jeff suggests in his post are clear and
policy neutral - just what is needed.

--
Scott Lawrence        GlobespanVirata Embedded UPnP & Web Technology
[email-masked]                  http://www.emweb.com/

---

From: "Roy T. Fielding" <[email-masked]>
Date: Wed, 24 Apr 2002 13:10:56 -0700

>   perform an action other than simple form-like submission."

No, that would be over-constraining the protocol (adding a requirement
that isn't necessary for interoperability just means people will ignore
the requirement).  POST is still the place for spill-over semantics.

However, I do think that the definition should include ALL of the things
for which POST is used, including the semantics of usenet news and mail
for which this method does continue to apply and for which Larry's
suggested definition isn't sufficient.  There is absolutley nothing
wrong with the definition supplied in RFC 2616.  It should not be changed,
and certainly isn't errata.

Cheers,

Roy T. Fielding, Chairman, The Apache Software Foundation
                  ([email-masked])  <http://www.apache.org/>

                  Chief Scientist, Day Software
                  2 Corporate Plaza, Suite 150   tel:+1.949.644.2557 x102
                  Newport Beach, CA 92660-7929   fax:+1.949.644.5064
                  ([email-masked]) <http://www.day.com/>

---

From: "Larry Masinter" <[email-masked]>
Date: Wed, 24 Apr 2002 15:58:48 -0700

> However, I do think that the definition should include ALL of 
> the things for which POST is used, including the semantics of usenet 
> news and mail for which this method does continue to apply ....

I don't see how this method "does continue to apply" when it isn't
used in any of the methods I've ever seen for submitting email,
forms, weblogs, Wikis, etc.

Can you find an example of this, actually? I think the example
is bogus. I've certainly never seen one. (Yes, it's easy to make
one, but we're talking about "common usage" not "possible usage").
In web forms I've seen for web submitted mail, Wikis, Blogs,
etc., the Request URI is not the URI of the resource, and the
entity enclosed is form-data, not a new subordinate entity.

Larry
-- 
http://larry.masinter.net

---

From: "Roy T. Fielding" <[email-masked]>
Date: Wed, 24 Apr 2002 17:18:27 -0700

On Wednesday, April 24, 2002, at 03:58  PM, Larry Masinter wrote:

> Can you find an example of this, actually?

W3C libwww
libwww-perl
Apache httpd

Any use of an HTTP proxy for the purpose of interfacing with news and
e-mail services will use POST for posting a message.

In any case, the semantics are there whether or not you personally
use them for some existing service.

....Roy

---

From: Mark Baker <[email-masked]>
Date: Wed, 24 Apr 2002 21:39:46 -0400

> entity enclosed is form-data, not a new subordinate entity.

"subordinate" doesn't imply "new subordinate".  Some subordinates
will receive their own identities, perhaps communicated via a 201
response.  Others will be processed and discarded.  But in both
cases, the term "subordinate" is applicable.

MB