TR-069第一期第六修正版-7

从今天开始进入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”只是一个示例,不一定是本规范定义的名称空间。

posted @ 2022-10-24 16:12  Kevin4X  阅读(101)  评论(0编辑  收藏  举报