基于HTTP的XML数据传输协议

消息包       

     客户端与服务器之间使用HTTP数据传输协议进行信息交互,客户端以HTTP协议中的POST请求方式将XML数据提交至服务器,服务器响应客户端同样也以POST数据流方式传输XML数据。客户端和服务器端发送和解析XML数据时要遵循数据传输协议。

        每一个请求、响应消息包都是一个XML字符串,包含消息头和消息体两部分,对于不同类型的请求、响应,消息头的格式都相同的,而消息体会携带具体类型的请求、响应信息。下面给出消息包格式定义

        

消息头

        所有请求、响应消息包中消息头的数据格式都是一样的,其中消息头很重要的一个作用就是来用进行数据的合法性校验。数据格式如下:

          

    消息头格标签含义说明如表3.1所示:

表3.1  消息头说明表

标签名

类型                       

长度

说明

messengerid

字符串

20

消息编号,格式为y yyyyMMddHHmmss +六位递增序号

timestamp

字符串

14

格式为:yyyyMMddHHmmss

transactiontype

字符串

3

请求类型(请求码)

username

字符串

<64

用户账号

digest

字符串

32

消息包摘要,算法用md5,摘要内容为(时间戳+密码+消息体明文)

source

字符串

32<=

操作终端来源

compress

字符串

32<=

明文加密方式,比如DES加密

消息体

         不同请求类型的请求、响应消息体不同,以推介图书请求为例,请求、响应消息体如表3.2所示:

表3.2  热门图书请求、响应消息体(明文)

项目

  内容

请求码

20002

请求消息体

<elements>

       <element>

              <bookIndex>0</bookIndex>

       </element>

</elements>

响应消息体

<books>

              <book>

                            <id>20001</id>

                            <bookname>数据结构</bookname>

                            <type>计算机</type>

                            <bookauthor>张三</bookauthor>

                            <bookprice>34</bookprice>

                            <totalbook>12</totalbook>

                            <case>T301</case>

                            <bookintime>2014-1-12</bookintime>

                            <operator>李四</operator>

                            <bookcomment>无</bookcomment>

                            <bookaddress>人民出版社</bookaddress>

                            <currbook>5</currbook>

                            <bookcode>1</bookcode>

                            <image>images/book1.png</image>

              </book>

            …………………….

</books>

数据加密

       为了传输数据的安全,在传输的过程中对XML数据做签名和加密处理。服务器和客户端接收到消息包后进行MD5校验,验证消息包的合法性。

        MD5签名数据包括时间戳、密码、消息体明文,加入时间戳的目的是保证每一次请求或响应的MD5签名值都不一样,密码是客户端与服务器端约定好的密码,不会出现在传输数据中。

        利用DES加密标签<body></body>之间部分,将传输数据转换成密文以后传输。其加密密钥也是客户端与服务器端约定好的,不会出现在传输数据中。

名词说明

        传输协议描述中名词MD5、HTTP、XML说明如表3.3所示:

表3.3  名词说明

名词

说明

MD5

message-digest algorithm 5

HTTP

hypertext transfer protocol

XML

extensible markup language


猜你喜欢

转载自blog.csdn.net/qq_32445015/article/details/80797814