Lists Home |
Date Index |
Joe English wrote:
> Paul Prescod wrote:
> > * Semantics of HTTP: [...]
> > POST should not be used for safe, idempotent fetching of information.
> I always thought it was the contrapositive: that operations which
> are not idempotent must use POST (or PUT or ... anything but GET).
If you go strictly by the HTTP specification then this is a grey area.
And of course anyone wanted to work around this in order to please a
language-lawyer could make the POST increment a useless counter.
Nevertheless, this is a violation of Web architecture:
Practically it leads to problems because it leads to objects that are
not referencable by other objects and thus are not "on the web."
> I was under the impression that idempotent POSTs were OK,
> (and even recommended for query-type operations with
> lots of long parameters, to avoid problems with buggy HTTP
> servers and overly-long URLs).
Yes, it is practically expedient in some circumstances. That's the
natural division between practice and theory. Sometimes it also makes
sense to POST the long query and have the server generate a resource
that represents the result. That result is now addressable so that the
query doesn't have to be duplicated in various references to it.
There has been a proposal for a QUERY method to handle this issue but I
think that that's the wrong solution, personally.