网络数据传输格式 - zLulus/My_Note GitHub Wiki

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>
</note>

json

{
  "note":
  {
        "to":"George",
        "from":"John",
        "heading":"Reminder",
        "body":"Don't forget the meeting!"
  }
}

二进制

YAML

YAML是一种直观的能够被电脑识别的的数据序列化格式

list:
  -  no: 101
     name: ruby
     age: 25
     gender: female
  -  no: 102
     name: tom
     age: 30
     gender: male
  -  no: 103
     name: rensanning
     age: 36
     gender: male

自定义报文

比如直接使用数组传输数据,报文定义好每个数据的意义即可

思考

摘抄自网络传输数据格式的选择

对于客户端和服务端的数据传输通常会有以下几点考虑:

1.网络数据大小——占用带宽,传输效率:虽然对单个用户来说,数据量传输很小,但是对于服务器端要承受众多的高并发数据传输,必须要考虑到数据占用带宽,尽量不要有冗余数据,这样才能够少占用带宽,少占用资源,少网络IO,提高传输效率;

2.网络数据安全性——敏感数据的网络安全:对于相关业务的部分数据传输都是敏感数据,所以必须考虑对部分传输数据进行加密;

3.编码复杂度——序列化和反序列化复杂度,效率,数据结构的可扩展性,可维护性:对于平台相关业务的代码实现也需要考虑到数据发送方和数据接收方数据处理的复杂度和数据结构的可扩展性,可维护性,人力成本和实施复杂度也必须考虑在内;

4.协议通用性——大众规范:数据类型必须是跨平台,数据格式是通用的,大家普遍能接受上手的;

⚠️ **GitHub.com Fallback** ⚠️