[decentralization] Re: REST and POST

Mark Baker distobj@acm.org
Thu, 23 Aug 2001 15:04:31 -0400 (EDT)


> Quoth Mark Baker on Thursday, 23 August:
> : 
> : There are good reasons for ensuring that GET remains the only method with which a
> : representation can be returned without side-effect a priori
> 
> HEAD also -- all the idempotent methods of the RFC, according to the
> standard.

HEAD doesn't return the representation.

>  But it's a bad idea.  GET is just a degenerate form of
> POST.

HTTP 1.1, caching proxies, and lots of people would disagree with you.

>  The idempotence of the action is not captured by the method,
> and it was a bad idea to link the cache architecture in this way: POST
> is more practical for moving a volume of pass-by-value arguments
> through a remote purely functional component.  While it is true that
> in those cases, caching architecture (really memoization) typically
> *should* be bypassed, that's an optimization, and should have been
> handled with idempotence flags.

That's one way to do it, but it would break the "axiom" I referenced.
Having a single method, without qualification, that means "show me"
is a Good Thing.

>  Forcing application developers to
> break a pure function call into a series of side-effecting
> transactions is goofy.

Nobody's forcing anybody to do anything.  If you don't want to do it
that way, don't.  Just don't expect to be able to reuse the tools
and services that get deployed for and by those of us who are
willing to follow a few more rules in order to build a richer
and more useful Web.

> :  [1] http://lists.w3.org/Archives/Public/www-rdf-interest/2001Aug/0182.html
> 
> This makes what should semantically be a pure function call into a
> side-effecting operation, on the server.  In practice, I wouldn't be
> willing to pay such a price in kludginess in order to play nice with
> dumb caches unless I was dealling with large data.

I wouldn't either, but my suggestion was in response to those who
wanted to specify queries in XML.  If you really have to do that,
I think what I proposed is the best that can be done without
breaking anything architecturally speaking.

MB