说明:
xmlns是web.xml文件用到的命名空间
xmlns:xsi是指web.xml遵守xml规范(一般是W3C规范)
XSD是指XML结构定义(一般是自定义的XML结构)
1.SOAP是什么:Simple Object Access Protoco (简单对象访问协议),一个基于XML的简单通信协议。
2.SOAP = HTTP + XML
SOAP请求可能是HTTP POST 或 HTTP GET请求
HTTP POST请求规定至少两个HTTP头:Content—Type 和 Content-Length
例子:
POST /item HTTP/1.1
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 250
3.语法规则
SOAP 消息必须用 XML 来编码;
SOAP 消息必须使用 SOAP Envelope 命名空间;
SOAP 消息必须使用 SOAP Encoding 命名空间;
SOAP 消息不能包含 DTD 引用;
SOAP 消息不能包含 XML 处理指令;
4.SOAP的错误信息
SOAP 的 Fault 元素用于下列子元素
:供识别故障的代码
:可供人阅读的有关故障的说明
:有关是谁引发故障的信息
:存留涉及 Body 元素的应用程序专用错误信息
//这篇文章说的很清楚
http://www.360doc.com/content/17/0103/19/32641359_619821541.shtml
5.不同的版本使用不同的空间:
SOAP1.2使用http://www.w3.org/2003/05/soap-envelope
对于命名空间和SOAP1.1使用http://schemas.xmlsoap.org/soap/envelope/。
案例:
SOAP 请求:
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml;charset=utf-8
Content-Length: nnn
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
SOAP响应:
HTTP/1.1 200 OK
Content-Type: application/soap+xml;charset=utf-8
Content-Length: nnn
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Bodyxmlns:m="http://www.example.org/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>
======================================
Content-Type 对应的值,其实就是 MIME。有非常多的值,这个我们还可以在 Tomcat、Nginx 等当中进行配置。
不同场景的 Content-Type 的值如下:
application/x-www-form-urlencoded:默认的 encType,当 form 表单请求为 get 时,数据被编码为 key/value 格式(name1=value1&name2=value2…),然后把这个字串 append 到 url 后面,用 ? 分割,加载这个新的 url 发送到服务器(表单默认的提交数据的格式);当请求为 post 时,浏览器把 form 数据封装到 http body 中,然后发送到 server。(form 的 enctype 属性为编码方式,常用有两种:application/x-www-form-urlencoded 和 multipart/form-data,默认为 application/x-www-form-urlencoded。)
multipart/form-data:需要在表单中进行文件上传时,就需要使用该格式
application/json:application/json 这个 Content-Type 作为响应头大家肯定不陌生。实际上,现在越来越多的人把它作为请求头,用来告诉服务端消息主体是序列化后的 JSON 字符串
text/xml:它是一种使用 HTTP 作为传输协议,XML 作为编码方式的远程调用规范
application/xhtml+xml:XHTML格式
application/xml:XML数据格式
application/atom+xml:Atom XML聚合格式
application/json:JSON数据格式
application/pdf:pdf格式
application/msword:Word文档格式
application/octet-stream:二进制流数据(如常见的文件下载)
text/html:HTML格式
text/plain:纯文本格式
image/gif:gif图片格式
image/jpeg:jpg图片格式
image/png:png图片格式