My Bow-Legged Master

Tim Ewald: "The HTTP spec positions the four main methods as equals, but I don't look at it that way. POST is the core method. GET is an optimization that enables caching and, more importantly, makes it possible to bookmark protocol states as a single text string"

The argument that defaulting to POST is somehow the most pragmatic and effective choice for real programmers with real problems is something to be questioned. This argument pops up every now and then, often under the guise of getting it done, but I suspect it's problematic in the same way intentionally writing crap code is problematic. Everyone writes crap code at some point to get over the line, that doesn't mean it's a goal in itself.

I'd encourage anyone not to make the assumption that POST is the prime method and hence the most powerful, when in fact it's merely the least meaningful (and likely hiding a design flaw around resource naming) . It's what you use when the others don't fit the problem. It's not like we encourage programmers to call all their methods "execute".

"I back up this position with the observation that while we encounter GET and POST all the time, PUT and DELETE are very rare"

We encounter GET and POST all the time because that subset got baked into HTML forms, early browsers, firewalls and proxies. It's a frozen accident. Those methods to this day get preferential treatment in specs, frameworks, even mobile phones. The XForms EG had to be persuaded to add PUT/DELETE. J2ME barely missed subsetting HTTP. JSF started with POST as the default, which is clearly nuts for a web framework. One of the reasons WS was a mess over the web was because it aped a frozen accident, html forms, and drilled everything through POST. Use of PUT/DELETE was considered a potential showstopper in the early days of Atompub. And on and on. The history of this is quite astonishing and someday deserves proper treatment; for now it should be enough to say that just because the master has bow legs, it doesn't mean the students should copy his walk.

"I want to focus on digging into HTTP-based distributed state machines (a term I got from Sam) that leverage the pragmatic solutions for scalability, reliability, and security that we’ve developed on the Web."

Recommended reading: Tomayko on physical 2-tier LAMP and Obasanjo's "my website is bigger than your enterprise".

Languishing as a draft since 2007-07-26