目前接触到的报文格式有三种:xml 、定长报文、变长报文 。
此处只做简单介绍,日后应该会深入学习到三者之间如何解析,再继续更新。——2016.9.23
XML
XML 被设计用来传输和存储数据。
HTML 被设计用来显示数据。
XML 仅仅是纯文本
XML 没什么特别的。它仅仅是纯文本而已。有能力处理纯文本的软件都可以处理 XML。
不过,能够读懂 XML 的应用程序可以有针对性地处理 XML 的标签。标签的功能性意义依赖于应用程序的特性。
通过 XML 您可以发明自己的标签
例子:
XML 使用简单的具有自我描述性的语法:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
上例中的标签没有在任何 XML 标准中定义过(比如 <to> 和 <from>)。这些标签是由文档的创作者发明的。
这是因为 XML 没有预定义的标签。
在 HTML 中使用的标签(以及 HTML 的结构)是预定义的。HTML 文档只使用在 HTML 标准中定义过的标签(比如 <p> 、<h1> 等等)。
XML 允许创作者定义自己的标签和自己的文档结构。
优缺点:
可读性强,易于维护;
国际通用标准格式,不易于被防火墙拦截;
节点臃肿,占用大量内存,传输慢。
定长报文
目前应用最广泛的报文。
定义:使用固定的长度表示一个信息。定长定长,就是固定长度,我暂时是这样理解的。
优点:省去多余的节点,传输数据更快。
局限性:担心以后所定义域的长度要加长,配置或程序就要随之改变,维护困难。
例子:
比如定义一个18字节的报文:abcde12345fghigklm
abcde为一个域,12345为一个域,fghigklm为一个域。这些都是根据编写者定义的。如果业务需求要求报文增加日期,则需要修改报文为:abcde12345fghigklm20160923,现在则是一个26字节的报文了。
如果定长报文含有多个域,并且后期更改的域的格式有很多,这种情况就凸显了定长报文的局限性。
变长报文
结合xml的可维护性和定长报文的占空间少。
1 例子:03abc051234502ef 2 说明:03 此域的长度标识(没有规范命名,暂且成为长度标识),向后取3位,即:abc
3 05 此域的长度标识,向后取5位,即: 12345
4 02 向后取2位,即: ef