- From: Dan Gunter <dkgunter@lbl.gov>
- Date: Thu, 07 Jun 2001 17:38:55 -0700
- CC: XML Dist-App <xml-dist-app@w3.org>
(( I promise to make this brief, then return to lurking.. ))
From what I understand, SOAP is _not_ an extension of HTTP, instead
it is a protocol with an HTTP binding. I really hope that other
bindings remain possible.
Pushing SOAP status information up into HTTP seems to me like a hack
that's going to cause no end of headaches for other bindings (what
happens when an intermediary needs to translate from HTTP<->UDP? does
it have to parse all the messages going back HTTP-side so it can stick
in the right error code? ugh..). Also, it complicates the spec.
I like the XML-RPC take on the issue: "Unless there's a lower-level
error, always return 200 OK.".
Thanks for listening,
- Dan Gunter
Philip Eskelin wrote:
> Section 5.3 of RFC 2616 says that the request header fields of a request
> sent between a Web client and server allow the client to express additional
> information about the request and about the client itself to the server that
> will be serving the request. These fields are request modifiers, with
> semantics equivalent to the parameters on a programming language method
> invocation. So it turns out that HTTP is a very adequate protocol from which
> distributed apps can be built upon.
>
> If only the SOAP guys had the outlook of extending HTTP, usings request
> modifiers to express its extra semantics above and beyond HTTP. You don't
> force SOAP faults to translate into existing HTTP status codes, you extend
> the protocol with modifiers that deal with the faults in a semantically
> clear manner.
>
> ----- Original Message -----
> From: "Mark Baker" <distobj@acm.org>
> To: <xml-dist-app@w3.org>
> Sent: Sunday, June 03, 2001 2:44 AM
> Subject: Re: Issue #12: HTTP Status Codes 500 v 200
>
>
>
>>My 2c on this issue (I like tackling the tough ones 8-)
>>
>>SOAP is one way of extending HTTP's (or many other application
>>protocol's) semantics. It is *not* a layer above HTTP in the same way
>>that WebDAV isn't a layer on top of HTTP. SOAP and WebDAV are both
>>extensions of HTTP. SOAP just happens to extend HTTP in a way that HTTP
>>wasn't expecting (to say the least - and FWIW, this isn't a good thing).
>>
>>A SOAP fault carried on an HTTP response must therefore use HTTP
>>semantics as best it can. There are four types of SOAP fault;
>>
>>- version mismatch
>>- must understand
>>- client
>>- server
>>
>>The last one clearly maps quite cleanly to a 500. The third one maps
>>cleanly to 400. (*) The other two aren't as straightforward.
>>
>>The "Version Mismatch" fault looks a bit like a 505 ("HTTP Version Not
>>Supported"), but not exactly, since 505 is specific to HTTP versioning,
>>not SOAP versioning. But I certainly believe that either 500, or a new
>>5xx code should communicate the intent.
>>
>>The "Must Understand" fault is quite close to a 417 ("Expectation
>>Failed" - part of the HTTP 1.1 Expect feature). It's a 4xx ("Client
>>Error") presumably because if the request hadn't been sent with that
>>Expect header, you'd be fine. I suggest that either 400 or a new 4xx
>>status code (not 417, as that's specific to Expect) be used for must
>>understand as well.
>>
>>(*) I would normally suggest that using the specific 5xx or 4xx status
>>codes (rather than 400 and 500) should be used, but as SOAP is trying to
>>be application-protocol neutral, I can understand its desire not to.
>>
>>I hope that was helpful.
>>
>>MB
>>
>
Received on Thursday, 7 June 2001 20:39:55 UTC