当前位置: 首页 > news >正文

应用层自定义协议(组织数据的格式)

概念

        在进行网络传输数据的时候,通常是将要传输的数据组织成一个字符串,再将字符串转换为一个字节流进行网络传输数据,而数据组织的格式是多种多样的,我们只需要保证,客户端和服务器对于字符串的组织和解析统一即可

现有的数据组织格式

        由于只需要保证客户端和服务器对于字符串的组织和解析统一即可,所以对于数据的组织格式是多种多样,天马行空的,所以有大佬就提出了现成的数据组织格式

        一.xml格式

                xml格式例子

        

        上图是xml格式的示例,格式有点像前端的html和css,用了很多的标签采用键值对(key-value)的形式非常清晰的把结构化数据表示出来了

        但是缺点也很明显,表示数据需要引入大量的标签,看起来很繁琐,同时由于在进行网络传输的时候标签也需要一起进行传输,所以会占用不少的网络带宽(国内最贵的硬件资源,就是网络带宽)所以现在xml格式以及没有多少地方会使用了

        二.json格式

        json格式例子

        上图是json格式的示例,在json中,使用{ }表示键值对,使用[ ]表示数组,数组里的每一个元素,可以是数字,可以是字符串,还可以是其他的{ }或[ ]

        在json数据组织格式中使用的核心思路也是键值对(key-value),很明显,json组织数据的格式比xml清新很多,这是当前最主流使用的一种网络传输数据的格式,未来在实际开发中会经常用到json格式的数据

        但是即使是json格式来组织数据依然会引入一些标签,在传输数据的时候占用部分的网络带宽,这也是json格式组织数据的一个小小的缺点

        三.protobuffer格式

        这是谷歌提出的一套,二进制的数据序列化方式,使用二进制的方式,约定某几个字节,表示哪个属性,这样就不需要引入标签,就可以最大限度的节省空间,就可以在传输数据的时候只传输确实需要的数据,节省网络带宽,最大化效率

        但是也有缺点,二进制数据是无法用肉眼观察的,不方便调试,使用起来比较复杂,需要专门编写一个proto文件(有自己一系列的语法规则),描述数据的格式咋样的,再进一步的通过大佬提供的工具,把proto文件转换成一些代码,再嵌入到程序中使用

实际开发中是开发效率重要还是运行效率重要

        而在我们实际开发中是开发效率重要还是运行效率重要呢,通常来说是开发效率重要,因为想要提高运行效率,升级硬件也是一种重要手段,不需要花太多的钱,而想要提高开发效率,就得招聘更多的程序猿,在软件开发领域中,人力成本,永远是最贵的,所以通常对于运行效率没有严苛要求的话,我们还是使用json格式来组织数据更多一点

http://www.lryc.cn/news/130622.html

相关文章:

  • 5种常见的3D游戏艺术风格及工具栈
  • 【玩转Linux操作】crond的基本操作
  • 设置Linux 静态IP
  • JMeter接口自动化测试实例—JMeter引用javaScript
  • javascript期末作业【三维房屋设计】 【源码+文档下载】
  • 数组详解
  • 【记录COCO数据集格式】实例分割的annotations.json的内部格式
  • mac 关于获取手机信息 终端指令
  • ios消息推送例子
  • LabVIEW开发最小化5G系统测试平台
  • 如何用输入函数为数组赋值
  • 【Python COM】Word 自动纵向合并相同内容单元格
  • maven 环境变量的配置
  • flutter-设置开屏页 解决开屏白屏问题
  • 简单理解Linux中的一切皆文件
  • Kubernetes的endpoint
  • 第四章,向量组,2-矩阵等价与向量组等价的关系
  • Flink源码之StreamTask启动流程
  • 【BASH】回顾与知识点梳理(三十)
  • 亿赛通电子文档安全管理系统任意文件上传漏洞复现
  • java:数据库连接池
  • 可视化绘图技巧100篇基础篇(三)-条形图(一)
  • 如何使用Redis实现附近商家查询
  • 于vue3+vite+element pro + pnpm开源项目
  • 18-组件化开发 根组件
  • springboot集成ES
  • Maven 生成编译时间和版本Java类
  • 关于uniapp微信小程序scroll-view组件使用show-scrollbar隐藏不了滚动条
  • CSS:filter滤镜 详解(用法 + 代码 + 例子 + 效果)
  • 【Unity每日一记】Physics.Raycast 相关_Unity中的“X光射线”