人们每天都在接收信息和发送信息,在传递信息的过程中,明白对方要表达的意思。数据也是如此,在系统交换数据的过程中,就伴随着数据交互。本篇文章将为大家具体分析前端和后台的数据交互与协议。

本文所说的”数据交换” 是指在计算机网络中,一个系统把数据传递给另外一个系统。这非常类似于一个人要告诉另外一个人一件事情。

当一个人要把一件事情告诉另外一个人的时候,我们可以通过电话、邮件、短信、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 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

asp后台调用产品数据_后台产品经理,需掌握这些数据交互知识相关推荐

  1. insert时调用本身字段_「技术篇」ETL工具Kettle数据对比同步以及Java程序中调用

    作为一个技术栈出身的攻城狮,虽然走上管理之路,但是技术是不能扔下的,时不时的拿起来重温一下,理论与实践相结合... 使用背景: 住建部某区块链共享平台(下游系统)需要自于上游系统的生产库数据,数据量不 ...

  2. 刷新table数据_经典 - 一文轻松看懂数据透视表

    [导语]也许大多数人都知道 Excel 中的数据透视表,也体会到了它的强大功能,那么 Pandas 也提供了一个类似的功能,也就是pivot_table.因为考虑到直接学 pivot_table 会有 ...

  3. 多源异构数据_构建数字孪生城市的CIM数据平台哪家强?

    文/王颖初 数字城市系统建设中数据领域存在的问题 随着经济的发展和信息化水平的飞速提升,数字城市的系统建设也日益普及.数字城市涉及规划.建设.城市管理.国土.交通.水利.安防.人防.环境保护.文物保护 ...

  4. python爬取行业数据_用Python进行Web爬取数据

    介绍 我们拥有的数据太少,无法建立机器学习模型.我们需要更多数据! 如果这句话听起来很熟悉,那么你并不孤单!希望获得更多数据来训练我们的机器学习模型是一个一直困扰人们的问题.我们无法在数据科学项目中获 ...

  5. bootstraptable 怎么在特定行添加数据_同等权限下多任职之间数据权限的实例

    编辑导语:同等权限下多任职之间的数据权限应该如何解决呢?本文作者提出了两种解决方法,并且介绍了权限系统.权限分类和角色管理,希望看后能够对你有所启发. 有两种解决方案: 第一种实现难度低,不用跟组织架 ...

  6. 天云大数据_【案例分享】天云大数据最佳实践系列之——信用评分模型

    本文为天云大数据原创 大数据能力特有的性质,使其正在成为大型银行真正的核心竞争力.银行大数据能力表现在多方面,但大数据思维和数据挖掘能力是最关键.也是最重要的.天云大数据自成立以来,一直深耕于金融领域 ...

  7. mysql 删除表数据_主外键关联表的数据删除策略

    说个题外话,我从来没想过会被拼多多这款软件所魔怔,他的这种社交营销的能力,实在是太强了,在怂恿之下,开始给儿子拼个这个, 各位有空帮砍下,https://w.url.cn/s/AzlPAB9,或者扫下 ...

  8. java爬取网页数据_利用Python做数据分析—对前程无忧数据类岗位进行分析

    引言 随着时代的发展,我国在各行各业都需要大量的人才引进,处于近几年最热门的行业也称"最火行业":大数据.数据分析.数据挖掘.机器学习.人工智能,这五门行业各有不同又互有穿插.近几 ...

  9. java获取mysql的数据_【助教】Java获取数据库数据展示

    本文将给出一个最简单的Java查询数据库中一张表的数据并将查询结果展示在页面的例子. 实际上,我们要解决以下两个问题: Java与数据库交互(以JDBC为例) 数据展示在前台页面(以Servlet+J ...

最新文章

  1. 2019半年总结:Teams are powerful
  2. 7系列FPGA逻辑单元理解
  3. bzoj 1705: [Usaco2007 Nov]Telephone Wire 架设电话线【dp】
  4. oracle基础之工具系列(持续更新中,,)
  5. win10光驱位连接计算机,windows10不能识别光驱位硬盘
  6. raid1 raid2 raid5 raid6 raid10的优缺点和做各自raid需要几块硬盘
  7. C# 调用 *.sql 文件
  8. Highcharts custom renderer chart and tooltip
  9. 【数据结构笔记37】表排序与物理排序
  10. oracle统计每个类别,Oracle统计分析函数集之一
  11. 链表常见操作java实现一:链表初始化,求链表长度
  12. 小说app源码原生开发ios、android客户端可直接上架商用或二开方便功能多,可测试
  13. 1000个苹果和10个筐子
  14. iOS UITableView 指定组头悬停位置
  15. mysql分隔符_在sql文件中设置MySQL分隔符
  16. dw8php如何使用,如何用DW8实现网页区域内选择显示
  17. 软件工程应用与实践(1)——项目简介,小组分工
  18. 使用python异步框架aiohttp从NASA抓取火星图片
  19. 【期末复习】多媒体技术
  20. QT/C++/Eigen 自己实现的MATLAB中的std()函数,矩阵按照列求标准差

热门文章

  1. php yii 插入,Yii2 批量插入、更新数据实例
  2. python 框架 优化_python+unittest框架第六天unittest之优化测试报告
  3. 当社恐和社恐相亲时,场面会有多尴尬?
  4. 物理学上最厉害的54个男人!2400年来难以超越,没想到聚在一起后这么震撼......
  5. 世上最“贵”的河:河里石头比黄金还值钱?甚至还有士兵驻守!
  6. 代理管家app_亲亲小保社保管家app2021下载_亲亲小保社保管家app最新版下载
  7. linux内核线程socket,从Linux源码看Socket(TCP)的accept
  8. android 获取app自启动权限状态_央视批手机App权限问题:频繁自启动 搜集个人隐私触目惊心...
  9. 查询程序崩溃日志_PC 崩溃报告途径 amp; 临时解决方法
  10. 广东省计算机应用(2010),2010年广东省高等教育自学考试计算机基础及应用(N)试卷(课程代码.doc...