后台产品经理,需掌握这些数据交互知识
本文所说的”数据交换” 是指在计算机网络中,一个系统把数据传递给另外一个系统。这非常类似于一个人要告诉另外一个人一件事情。
当一个人要把一件事情告诉另外一个人的时候,我们可以通过电话、邮件、短信、IM工具或者当面说的方式来交流。这种方式类似于系统数据交换要通过 TCP、UDP、管道等等的方式实现。
当两个人交流的时候,我们需要一种共同的语言才能明白对方的意思,同样的,两个系统要交换数据,也需要定义一种双方都明白的协议,我们称为”数据交换协议”。
目前,除了一些特别简单非联网类应用(比如计算器、闹钟等),几乎所有的应用均是联网应用(比如新闻客户端,微信等等),这些 app 客户端基本都只是负责用户的交互与数据收集与展示,真正的数据和服务均存储在云端。下面将为大家具体分析一下:前端和后台的数据交互与协议。
一、移动端与后台的交换数据和展示
我们打个比喻,其实整个过程跟去火锅店吃火锅一样的。
拿任意一个新闻客户端举例:
- 当用户刷新的那一刻(你萌生了吃火锅的想法)
- 客户端开始组织数据请求(你开始穿衣洗脸打扮,并思考该去哪一家吃呢)
- 当用户界面开始展示 loading 的时候(这个时候你正走在去火锅店的路上)
- 经过几百毫秒的时间,这个时候请求数据已经到了服务器(你已经坐在了火锅店的桌子上),服务器开始查看客户端想要请求哪方面的数据,是请求财经频道的,还是请求汽车频道的数据(服务员递来了菜单,问你想吃啥)
- 服务器看懂了客户端的想法开始准备数据(你点了一个鸳鸯锅,一大堆吃的)
- 服务器看到你请求的是汽车频道和财经频道的数据(后台的厨师开始制作美食),并给回到服务员,服务员一路小跑,将你要的锅和一大堆的食物递到你的面前,这个时候相当于数据已经传回到了客户端
- 客户端loading消失,于是你看到了最新的两个频道的数据
二、客户端和服务器之间传输数据的格式
现在流行的做法通常有两种,一种是类似于 PB(Protocol Buffer,是 google 的一种数据交换的格式,它独立于语言,独立于平台。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,以用于诸如网络传输、配置文件、数据存储等诸多领域。)
另一种是 JSON(JavaScriptObject Notation),这也是一种轻量级的数据传输格式,就是用一堆中括号把数据组织起来,不像二进制,这种格式是人可读的,并且比较轻巧,所以也有大量的应用场景。下面这段数据就是 JSON格式,简单解读一下,就是 people 对应了三个人,三个人分别是中括号间的三个花括号中的人。
总结起来十分简单,移动端提出需求,服务器按要求组织好数据发给你,针对不同的格式,移动端自己解析,展示,完活儿。其实,不止移动端,前端网页和后台,后台和后台之间也是这个道理。
三、数据的传输过程
首先我们来看下不同网络断上的两台计算机如何通过TCP/IP协议进行通讯:
从以上整个的一个数据流程我们可以看出协议是水平的,而服务是垂直的,TCP叫做传输控制协议,是一种面向连接的、端对端的、可靠的、基于IP的传输层协议。主要特点是3次握手建立连接,4次挥手断开连接。
而IP又叫因特网协议,IP协议位于网络层,IP协议规定了数据传输时的基本单元(数据包)和格式,IP协议还定义了数据包的递交办法和路由选择。
整个网络中的传输流程是:IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层—TCP层;相反,IP层也把从TCP接收来的数据包传送到更低层。
简言之TCP和IP的关系是,IP提供基本的数据传送,而高层的TCP对这些数据包做进一步加工,如提供端口号等等。
在网络接口这一块主要是有两大局域网技术规范,分别是以太网和令牌环,注意这并不是网络,以太网定义了在局域网中采用的电缆类型和信号处理方法,而令牌环网络则是保证每个节点设备在可以预定的时间间隔获得对网络的访问,适用于对实时性要求高的应用。
以上是技术视角,我们再以产品视角来结合上述回顾当我们加载数据时整个的一个数据流程:
作者:Te Fuir;公众号:唐僧讲道法
本文作者 @Te Fuir 。
版权声明
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!