从今天开始进入HTTP阶段,可能会涉及会话的主要部分,本周计划把HTTP部分分析完。
3.4 使用HTTP
CPE和ACS之前使用HTTP1.1 发送 SOAP消息,其中CPE是HTTP Client,ACS则是HTTP server。
注意-CWMP也用HTTP来实现Connection Requests。在这种情况下CPE是HTTP server,ACS则是HTTP Client。章节3.2.2 中描述了这种用法。
3.4.1 基于HTTP的SOAP编码
HTTP上SOAP的编码扩展了SOAP的HTTP绑定。这在[12]中的章节6中有如下定义:
从ACS到CPE的SOAP请求通过HTTP响应发送,而CPE对ACS请求的SOAP响应通过后续HTTP POST发送。
当HTTP Request中存在SOAP响应时或者SOAP错误响应时,HTTP Request中的SOAPAction头必须没有值(也不带引号),这表明该头不提供有关消息意图的信息。也就是说,它必须如下所示:
SOAPAction:
当HTTP请求或响应包含SOAP 信封(Envelope)时,HTTP内容类型标头的类型/子类型必须为“text/xml”。
空HTTP POST不能包含SOAPAction头。
空HTTP POST不得包含Content-Type头。
包含任何CPE WAN管理协议有效内容的HTTP响应,必须使用HTTP状态代码200(OK)。有效内容包括:对CPE的SOAP请求、对CPE的成功SOAP响应或包含第3.5节中定义的SOAP故障响应。
在XML文档中传输字符串值时,必须按照XML规范[7]的规定对XML专用的任何字符进行转义。此外,除可打印ASCII字符以外的任何字符,即十进制ASCII表示超出(包括)范围9-10和32-126的任何字符,都应按照XML规范的规定进行转义。
Kevin:TR069后面给出了例子, 基本上和抓包的内容相近。在后面处理交互问题时,这部分是基础。另外,SOAP包是比较常见的,模拟SOAP消息有时候可以考虑用SoapUI,也可以考虑用Jmeter、Postman等等。
下面是来自包含SOAP请求的ACS的HTTP响应示例:
HTTP/1.1 200 OK
Content-Type: text/xml; charset="utf-8"
Content-Length: xyz
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:cwmp="urn:dslforum-org:cwmp-1-0">
<soap:Body>
<cwmp:Request>
<argument>value</argument>
</cwmp:Request>
</soap:Body>
</soap:Envelope>
注意-在上面的例子中,XML 名称空间(namespace)前缀只是一个例子。实际的名称空间前缀值是任意的,仅用于引用名称空间声明
注意-在上面的示例中,CWMP名称空间标识符“urn:dslforum org:CWMP-1-0”只是一个示例,不一定是本规范定义的名称空间。
标签:XML,ACS,HTTP,069,TR,CPE,修正版,响应,SOAP From: https://www.cnblogs.com/kevin4X/p/16821809.html