基于HTTP的XML数据传输协议

消息包       

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

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

        基于HTTP的XML数据传输协议_第1张图片

消息头

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

          基于HTTP的XML数据传输协议_第2张图片

    消息头格标签含义说明如表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

请求消息体

      

              0

      

响应消息体

             

                            20001

                            数据结构

                            计算机

                            张三

                            34

                            12

                            T301

                            2014-1-12

                            李四

                           

                            人民出版社

                            5

                            1

                            images/book1.png

             

            …………………….

数据加密

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

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

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

名词说明

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

表3.3  名词说明

名词

说明

MD5

message-digest algorithm 5

HTTP

hypertext transfer protocol

XML

extensible markup language


你可能感兴趣的:(Android)