W3C home > Mailing lists > Public > www-ws-arch@w3.org > July 2002

Clarification on REST, GET and CGI

From: Paul Prescod <paul@prescod.net>
Date: Wed, 24 Jul 2002 10:31:03 -0700
Message-ID: <3D3EE457.911E1C06@prescod.net>
To: David Orchard <dorchard@bea.com>
CC: "'Mark Baker'" <distobj@acm.org>, www-ws-arch@w3.org, "rest-discuss@yahoogroups.com" <rest-discuss@yahoogroups.com>, fielding@apache.org

David Orchard wrote:
> 
> ....  To compare, if I were to document REST as it is
> done today, I'd probably ignore HTTP PUT/DELETE and I'd say that GET/POST
> can be used interchangeably except for some bookmarking applications where
> GET is a little better.  

That's a severe misrepresentation of the way the Web is used today. GET
is used whenever safe references are important. Bookmarking is a tiny
example. I can send you this link because of GET:

http://search.bea.com/query.html?qt=REST

I didn't bookmark it and probably you won't either. That fact that I can
email it to you -- communicate it to you -- is what is important. You
can interoperably, using any Web client, anywhere in the world,
dereference that link. Bookmarking is a side effect of that general
improvement in interoperability. I am confident that BEA's web designers
understand this issue because they work with these safe information
references ("hyperlinks") all day.

> ... And I'd say that CGIs are great.  

CGIs *can be* great. I may be wrong, but I think that you're
interpreting something from this mail by Roy Fielding. I've seen this
post misinterpreted (IMO) in other places so I'm going to address it
once and for all.

 * http://lists.w3.org/Archives/Public/www-tag/2002Apr/0181.html

Note the last sentence: 'The fact of the matter is that
most CGI scripts are not HTTP compliant.  Most CGI scripts, in fact,
provide interfaces to applications that suck. The "G" stands for
Gateway.
What people should realize is not that "CGI scripts should be banned",
but rather that if the CGI script is written such that it behaves
like a proper Web interface, then it won't suck.'

CGI is a *gateway* interface. You can either use it to just publish some
functionality through a URL (tunnelling) or you can use it to build a
proper gateway between your software and the Web: URIs for all
resources, hyperlinks as the engine of application state, etc. Some of
the most REST-ful applications in the world are CGI and many of the
least are not.
-- 
Come discuss XML and REST web services at:
  Open Source Conference: July 22-26, 2002, conferences.oreillynet.com
  Extreme Markup: Aug 4-9, 2002,  www.extrememarkup.com/extreme/
Received on Wednesday, 24 July 2002 13:32:07 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:02 GMT