服务器_数据交互(数据传输格式,JSON,XML,Google Protocol Buffer)

网络层建立了客户端和服务器的连接之后,就可以传输数据。传输数据的时候,为了双方都可以识别,需要拟定一个双方都能解析的数据格式(就像讲话的使用同一语言)数据传输格式建立网络连接之后,客户端和服务器就可以通过数据传输,从物理本质上来说,网络传输其实是通过一系列的线路,经过电路调整变化,依据网络传输协议进行通信的过程。数据传输特点:网络数据大小网络数据的大小影响带宽的占用,当服务器承受高并发的...
摘要由CSDN通过智能技术生成

网络层建立了客户端和服务器的连接之后,就可以传输数据。传输数据的时候,为了双方都可以识别,需要拟定一个双方都能解析的数据格式(就像讲话的使用同一语言)

数据传输格式

建立网络连接之后,客户端和服务器就可以通过数据传输,从物理本质上来说,网络传输其实是通过一系列的线路,经过电路调整变化,依据网络传输协议进行通信的过程。
数据传输特点:

网络数据大小
网络数据的大小影响带宽的占用,当服务器承受高并发的数据传输时,网络流量会达到峰值(过大会占满带宽),影响服务器的使用效率和用户体验,所以数据传输过程中,应尽量减少冗余数据,节省带宽,提高传输效率。

网络数据安全性
客户端和服务器交互的大多数数据都是对外界隐藏的,所以网络传输过程中的选择数据格式要考虑数据安全。

实现复杂度
数据传输过程中,需要对信息进行序列化和反序列化 ,实际开发中也要注意数据结构的可扩展性和可维护性。

协议通用性
通常情况下,客户端和服务器处于不同的运行环境下,因此需要传输的数据具备跨平台的特性,能够实现同步平台之间的跨平台通信,而不局限于同种平台之间的数据传输。

数据类型

  • 自定义二进制 :最直接的数据传输格式,信息体积小,但缺少易读性和易写性,自定义二进制传输需要服务器和客户端自己定义消息格式,并自己实现序列化和反序列化的方式和容错处理等,可扩展性也不强,很难得到广泛应用,但自由度很高。

  • 开源协议:最常见的协议库:JSON,SML,Google的Protobuffer及Facebook的Thrift。这些开源库基本都提供了序列化和反序列化的库,在扩展性和容错处理方面也很不错。Protobuffer和Thrift是比JSON,XML,Binary体积更小,效率高,使用方便,支持语言更多,更高级的开源协议等。

  • 文本化协议 : 数据传输也可以直接使用文本格式,按照一定的协议标准组织结构进行传输,如JSON,XML等,通过使用这些开源库,实现文本数据的序列化和反序列化。文本文件的数据大小更大,但是可视化好,容易维护和调试。

JSON

JSON(JavaScript Object Notation,Javascript对象)是一种轻量级数据交换格式

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值