- From: Jeffrey Kay <jkay@ENGENIA.COM>
- Date: Tue, 8 May 2001 12:49:08 -0400
- To: "'Henrik Frystyk Nielsen'" <henrikn@microsoft.com>, dick@8760.com
- Cc: xml-dist-app@w3.org
Henrik -- > >I'd agree that text/xml would be really hard to distinguish > >SOAP messages from others without processing the XML directly. > > I'd be more in favor of a text/xml-soap or > >application/xml-protocol or something like that to clearly > >identify the kind of XML involved. It's not a perfect > >solution, but it solves the "signal" problem without having to > >resort to another header. Another thought might be to use > >something like: > > > > Content-Type: text/xml; format=xml-protocol > > > >This would have the same signal effect as SOAPAction, but > >without the extra header value. > > But it doesn't really - there are two parts to the SOAPAction fields - > the fact that it is a SOAP message (which at the end of the > day doesn't > say much of anything) and then there is the hint which is > administrated > in a decentralized manner. I agree that it doesn't cover the "hint". But that's the point really -- the use of a hint. To quote Noah, the "hint" is a solution looking for a problem. If the "hint" is a dispatch address within a given web server, then I question why the URI doesn't provide the same function. If the "hint" is merely an indicator of the type of the content, then I suggest that Content-Type does the same thing. The real question is where is a "hint" required? SOAP or XMLP intermediaries should clearly be expected to process the XML, hence no "hint" required. As such, I'd say than an HTTP binding must work on existing web infrastructure -- browsers and servers, intermediaries and firewalls. The addition of the SOAPAction header changes the semantic characteristics of a web transaction, making existing infrastructure not work. Web browsers would need to implement it to support SOAP, which means that a common POST from a form couldn't generate an XML stream and simply POST it to a waiting web server. Similarly, think about the transport intercepts that the hotels use to get you to pay your $9.95 for 24 hours of high speed Internet. This means that an intercepted SOAP message would receive a 200 back, although the content in the message wouldn't be a SOAP response. Unfortunately this is all real life. We are much better off letting HTTP mean "the web" and not adding constructs that are unnecessary. In this regard, an HTTP binding is better viewed merely in the context of transport, where the payload happens to be XMLP content rather than presuming that the web needs to understand anything about the package it's carrying. So there are really two arguments mixed in here. 1) SOAPAction is unnecessary because it duplicates what could be in the Content-Type header and in the URI. 2) An HTTP binding must conform to the expectations (good and bad) of the web as we know it. The stack should be constructed such that the lower layer (in this case HTTP) knows as little as possible about the upper layer (in this case SOAP or XMLP). This is virtually identical to the approach used with HTTP over TCP, right? I don't see the TCP binding for HTTP needing any "hint" to understand something about the HTTP package and neither should the HTTP binding for XMLP require any "hint". > Btw, there is an RFC on XML and media types - it's RFC 3023 Thanks for the pointer. With this RFC in hand, I'd revise my previous suggestion to application/xmlp+xml or application/protocol+xml. Regards -- jeffrey kay <jkay@engenia.com> chief technology officer, engenia software, inc. "first get your facts, then you can distort them at your leisure" -- mark twain "golf is an endless series of tragedies obscured by the occasional miracle" -- sports illustrated "if A equals success, then the formula is A equals X plus Y plus Z. X is work. Y is play. Z is keep your mouth shut." -- albert einstein
Received on Tuesday, 8 May 2001 12:49:00 UTC