SOAP and the Web architecture

There has been a fair amount of discussion regarding SOAP and the Web
architecture[7] / REST principles[6] in different forums those past
few days, and I realized that despite this question was mentionned (at
least) twice in the past[1,2], it never made it to the issues list
(unless I missed it). Some recent discussions can be found at [3].

The gist of the problem is that the current HTTP binding uses HTTP POST
requests. However, sending an HTTP POST requests to a URI have precise
semantics[4]:

   The POST method is used to request that the origin server accept the
   entity enclosed in the request as a new subordinate of the resource
   identified by the Request-URI in the Request-Line. POST is designed to
   allow a uniform method to cover the following functions:
      - Annotation of existing resources;
      - Posting a message to a bulletin board, newsgroup, mailing list,
        or similar group of articles;
      - Providing a block of data, such as the result of submitting a
        form, to a data-handling process;
      - Extending a database through an append operation.

SOAP messages carried in an HTTP POST request may have the semantics
of an HTTP GET request for example, and using HTTP POST in that way
can be inappropriate.

Moreover, one of the Web architecture axiom is[5]:

   In HTTP, anything which does not have side-effects must use GET

Another aspect is that doing RPC requests over HTTP POST targetted to
a generic resource (say <http://example.com/genericSoapProcessor>) is
also incompatible with the REST principles.

The Working Group should IMO:
0) consider this problem.
1) document this characteristic of the HTTP binding (note that the
outcome of the TBTF work might modify the problem).
2) encourage the right use of HTTP (i.e. use HTTP GET when it is
appropriate for example) when possible.

I am going to open a design issue in the issues list (as soon as I get
the editing token for it) so that we don't lose track of it.

  1. http://lists.w3.org/Archives/Public/xml-dist-app/2001Jan/0029.html
  2. http://lists.w3.org/Archives/Public/xml-dist-app/2001May/0090.html
  3. http://lists.w3.org/Archives/Public/www-archive/2001Aug/thread.html#25
  4. http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.5
  5. http://www.w3.org/DesignIssues/Axioms.html#state
  6. http://internet.conveyor.com/RESTwiki/moin.cgi/RestResources
  7. http://www.w3.org/DesignIssues/Axioms.html
-- 
Hugo Haas - W3C
mailto:hugo@w3.org - http://www.w3.org/People/Hugo/ - tel:+1-617-452-2092

Received on Thursday, 23 August 2001 17:23:10 UTC