Re: Comments on draft-v10-03a.

Let me try to guess at some of the operational motivation behind the
concept we're trying to define for GET vs POST.

Right now, there are browsers around with a 'reload' button. If you
'reload' something that you obtained using 'GET', then you might get
different results, but it is 'safe' to press reload.  However, if you
'reload' something that you obtained using 'POST', then you might not
want to blindly resubmit the same form data. Many browsers either
complain or ask 'Resubmit FORM data?' when asked to 'reload' something
obtained using 'POST'.

Translating back from this usage scenario to a set of operational
requirements leads me to thinking that we want 'GET' to have no
additional side effects if repeated.

This is only vaguely related to the notion of idempotency. If you
define:

    server-state-after-GET = f<state> ( server-state-before-GET ) 

and ask that f<state> be idempotent. Note that the idempotency only
applies to the 'server state' and not to the value returned.

The property 'idempotent' can only apply when functions have a range
that is a subset of their domain.

If you define

        value-returned = f<value> (server-state-before-GET )

you'll note that range of 'value-returned' is a different
datatype/class and is disjoint from the domain of
'server-state-before-GET'.

Received on Wednesday, 30 August 1995 11:14:24 UTC