网站大量收购独家精品文档,联系QQ:2885784924

SOAP规范(完).doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SOAP规范(完)

SOAP规范(完) 作者:bdsc email: bdscca@yahoo.ca 日期:2001-7-13 17:08:10 6. 在HTTP中使用SOAP 这一节讲述了如何在HTTP中使用SOAP。把SOAP绑定到HTTP,无论使用或不用HTTP扩展框架,都有很大的好处:在利用SOAP的形式化和灵活性的同时,使用HTTP种种丰富的特性。在HTTP中携带SOAP消息,并不意味着SOAP改写了HTTP已有的语义,而是将构建在HTTP之上SOAP语义自然地对应到HTTP语义。 SOAP自然地遵循HTTP的请求/应答消息模型使得SOAP的请求和应答参数可以包含在HTTP请求和应答中。注意,SOAP的中间节点与HTTP的中间节点并不等同,即,不要期望一个根据HTTP连接头中的域寻址到的HTTP中间节点能够检查或处理HTTP请求中的SOAP消息。 在HTTP消息中包含SOAP实体时,按照RFC2376[3] HTTP应用程序必须使用媒体类型 text/xml。 6.1 SOAP HTTP请求 虽然SOAP可能与各种HTTP请求方式相结合,但是绑定仅定义了在HTTP POST请求中包含SOAP消息。(第7节中描述了如何在RPC中使用SOAP,第6.3节描述了如何使用HTTP扩展框架) 6.1.1 HTTP头中SOAPAction域 一个HTTP请求头中的SOAPAction域用来指出这是一个SOAP HTTP请求,它的值是所要的URI。在格式、URI的特性和可解析性上没有任何限制。当HTTP客户发出SOAP HTTP请求时必须使用在HTTP头中使用这个域。 soapaction = SOAPAction : [ URI-reference ] URI-reference = as defined in RFC 2396 [4] HTTP头中SOAPAction域使服务器(如防火墙)能正确的过滤HTTP中SOAP请求消息。如果这个域的值是空字符串(),表示SOAP消息的目标就是HTTP请求的URI。这个域没有值表示没有SOAP消息的目标的信息。 例子: SOAPAction: /abc#MyMessage SOAPAction: myapp.sdl SOAPAction: SOAPAction: 6.2 SOAP HTTP应答 SOAP HTTP遵循HTTP 中表示通信状态信息的HTTP状态码的语义。例如,2xx状态码表示这个包含了SOAP组件的客户请求已经被成功的收到,理解和接受。 在处理请求时如果发生错误,SOAP HTTP服务器必须发出应答HTTP 500 Internal Server Error,并在这个应答中包含一个SOAP Fault元素(见4.4节)表示这个SOAP处理错误。 6.3 HTTP扩展框架 一个SOAP消息可以与HTTP扩展框架 [6]一起使用以区分是否有SOAP HTTP请求和它的目标。 是使用扩展框架或是普通的HTTP关系到通信各方的策略和能力。通过使用一个必需的扩展声明和M-HTTP方法名前缀,客户可以强制使用HTTP扩展框架。服务器可以使用HTTP状态码510 Not Extended强制使用HTTP扩展框架。也就是说,使用一个额外的来回,任何一方都可以发现另一方的策略并依照执行。 用来表示SOAP使用了扩展框架的扩展标志符是: /soap/envelope/ 6.4 SOAP HTTP举例 例3 使用POST的SOAP HTTP POST /StockQuote HTTP/1.1 Content-Type: text/xml; charset=utf-8 Content-Length: nnnn SOAPAction: /abc#MyMessage SOAP-ENV:Envelope... HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: nnnn SOAP-ENV:Envelope... 例4 使用扩展框架的SOAP HTTP M-POST /StockQuote HTTP/1.1 Man: /soap/envelope/; ns=NNNN Content-Type: text/xml; charset=utf-8 Content-Length: nnnn NNNN-SOAPAction: /abc#MyMessage SOAP-ENV:Envelope... HTTP/1.1 200 OK Ext: Content-Type: text/xml; charset=utf-8 Content-Length: nnnn SOAP-ENV:Envelope... 7. 在RPC中使用SOAP 设计SOAP

文档评论(0)

htfyzc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档