Re: idempotence of POST

Since '96, several protocols have been developed which can be used to
extend HTTP so that you could build an idempotent POST; PEP, RFC 2774,
and SOAP.  So that's one possible approach.

More comments below ...

On Thu, Nov 20, 2003 at 12:48:04PM -0500, Dave Oxley wrote:
>    a) allow GET to take a body

GET is a different operation to POST, and means something quite
incompatible with it.  Except in very specific cases, I don't think
that's what you'd want to do.

If none of the above extension protocols are an option, I'd suggest
that you should consider how to wrangle your request to use PUT, which
takes a body and is idempotent.  Perhaps the server could return a URI
to which a PUT would be performed?

>    b) add a new method, GET-with-body (spelled how you like)

Same issues with GET semantics.

>    c) allow the return value of POST to indicate that the request
>       can be repeated safely.

In my experience, an idempotent POST is most desirable in the situation
where a response is not, or may not be, available.  So signally it in
a response after the fact seems nonsensical.  But perhaps there are
other use cases I'm not familiar with.

Mark.
-- 
Mark Baker.   Ottawa, Ontario, CANADA.        http://www.markbaker.ca

Received on Monday, 24 November 2003 20:34:16 UTC