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

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

47736f44f5af00c11d0a36d9b8b5a986.png

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

当一个人要把一件事情告诉另外一个人的时候,我们可以通过电话、邮件、短信、IM工具或者当面说的方式来交流。这种方式类似于系统数据交换要通过 TCP、UDP、管道等等的方式实现。

当两个人交流的时候,我们需要一种共同的语言才能明白对方的意思,同样的,两个系统要交换数据,也需要定义一种双方都明白的协议,我们称为”数据交换协议”

目前,除了一些特别简单非联网类应用(比如计算器、闹钟等),几乎所有的应用均是联网应用(比如新闻客户端,微信等等),这些 app 客户端基本都只是负责用户的交互与数据收集与展示,真正的数据和服务均存储在云端。下面将为大家具体分析一下:前端和后台的数据交互与协议。

一、移动端与后台的交换数据和展示

我们打个比喻,其实整个过程跟去火锅店吃火锅一样的。

拿任意一个新闻客户端举例:

  • 当用户刷新的那一刻(你萌生了吃火锅的想法)
  • 客户端开始组织数据请求(你开始穿衣洗脸打扮,并思考该去哪一家吃呢)
  • 当用户界面开始展示 loading 的时候(这个时候你正走在去火锅店的路上)
  • 经过几百毫秒的时间,这个时候请求数据已经到了服务器(你已经坐在了火锅店的桌子上),服务器开始查看客户端想要请求哪方面的数据,是请求财经频道的,还是请求汽车频道的数据(服务员递来了菜单,问你想吃啥)
  • 服务器看懂了客户端的想法开始准备数据(你点了一个鸳鸯锅,一大堆吃的)
  • 服务器看到你请求的是汽车频道和财经频道的数据(后台的厨师开始制作美食),并给回到服务员,服务员一路小跑,将你要的锅和一大堆的食物递到你的面前,这个时候相当于数据已经传回到了客户端
  • 客户端loading消失,于是你看到了最新的两个频道的数据

二、客户端和服务器之间传输数据的格式

现在流行的做法通常有两种,一种是类似于 PB(Protocol Buffer,是 google 的一种数据交换的格式,它独立于语言,独立于平台。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。可以把它用于分布式应用之间的数据通信或者异构环境下的数据交换。作为一种效率和兼容性都很优秀的二进制数据传输格式,以用于诸如网络传输、配置文件、数据存储等诸多领域。)

另一种是 JSON(JavaScriptObject Notation),这也是一种轻量级的数据传输格式,就是用一堆中括号把数据组织起来,不像二进制,这种格式是人可读的,并且比较轻巧,所以也有大量的应用场景。下面这段数据就是 JSON格式,简单解读一下,就是 people 对应了三个人,三个人分别是中括号间的三个花括号中的人。

a35f8be948a9e262b1cf81781c530d82.png

总结起来十分简单,移动端提出需求,服务器按要求组织好数据发给你,针对不同的格式,移动端自己解析,展示,完活儿。其实,不止移动端,前端网页和后台,后台和后台之间也是这个道理。

三、数据的传输过程

首先我们来看下不同网络断上的两台计算机如何通过TCP/IP协议进行通讯:

dc053384589c43d951c1d76ed2bd6013.png

从以上整个的一个数据流程我们可以看出协议是水平的,而服务是垂直的,TCP叫做传输控制协议,是一种面向连接的、端对端的、可靠的、基于IP的传输层协议。主要特点是3次握手建立连接,4次挥手断开连接。

而IP又叫因特网协议,IP协议位于网络层,IP协议规定了数据传输时的基本单元(数据包)和格式,IP协议还定义了数据包的递交办法和路由选择。

整个网络中的传输流程是:IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层—TCP层;相反,IP层也把从TCP接收来的数据包传送到更低层。

简言之TCP和IP的关系是,IP提供基本的数据传送,而高层的TCP对这些数据包做进一步加工,如提供端口号等等。

在网络接口这一块主要是有两大局域网技术规范,分别是以太网和令牌环,注意这并不是网络,以太网定义了在局域网中采用的电缆类型和信号处理方法,而令牌环网络则是保证每个节点设备在可以预定的时间间隔获得对网络的访问,适用于对实时性要求高的应用。

以上是技术视角,我们再以产品视角来结合上述回顾当我们加载数据时整个的一个数据流程:

2d44dc38d314f729221941e6bc4074a5.png

作者:Te Fuir;公众号:唐僧讲道法

本文由 @Te Fuir 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/310288.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用c# .net core开发国标gb28181 sip +流媒体服务完成视频监控实例教程 亲身完美体验过程...

目前使用C# .net core 来实现国标gb28181标准的摄像头播放、ptz云台控制、视频回放等视频监控功能,项目可运行于linux/docker/.net core环境,也是当前非常罕有的能做到毫秒级国标gb28181公网视频传送案例,也是少有的能同时具有播放、ptz云台控…

[Java基础]字节流读数据

代码如下: package InstreamPack;import java.io.FileInputStream; import java.io.IOException;public class FileInputStreamDemo01 {public static void main(String[] args) throws IOException {FileInputStream fis new FileInputStream("D:\\JavaDemo\\java.txt&…

丁可以组什么词_有哪些量词可以用来描述生意经?

分别有:本, 一(本)生意经。笔, 一(笔)生意经。次,一(次)生意量词用名量词:表示事物的计量单位。基本定义:通常用来表示人、事物或动作的数量单位的词,叫做量词。量词 lingc,与代表可…

硬核技能k8s初体验

,Kubernetes 是一个软件系统,使你在数以万计的电脑节点上运行软件时就像所有节点是以单个大节点一样, 它将底层基础设施抽象,这样做同时简化了应用开发、部署,以及对开发和运维团队的管理。Kubernetes集群架构Kubernet…

线上问题排查流程

问题排查 针对各种常见的线上问题,梳理下排查思路。 业务问题 线上问题大多数时候都是业务问题引发的问题,当线上环境绝大多数请求都是正常,当有部分或者某一个用户有问题,此时怎么针对性的排查在当前微服务体系下,…

springboot超详细教程_CG原画插画教程:超详细线稿教程

艺学绘小编收集整理了超详细线稿教程今天我们从起稿开始1. 用圆表示出人物的头部、胸腔和骨盆,分别画出头部的十字线和身体的中线,表示头和身体的朝向。用“火柴棍”表示四肢的动作形态。▼2. 根据圆和十字线画出脸的轮廓,再在身体骨架上画出…

Asp.Net.Core WebApi 版本控制

前言在后端Api的开发过程中,无法避免的会遇到接口迭代的过程,如何保证新老接口的共存和接口的向前的兼容呢,这时候就需要对Api进行版本的控制,那如何优雅的控制Api的版本呢?开始Microsoft.AspNetCore.Mvc.Versioning 是一个微软官方推出的一个用于管理Api版本的包,配…

[Java基础]字节缓冲流

字节缓冲输出流: package InstreamPack;import java.io.BufferedOutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets;public class BufferStreamDemo01 {public s…

matlab 判断鼠标按下,Matlab:如何通过使用回调来获取当前鼠标在点击位置

I googled near and far, but couldnt get an example of how you associate a callback to the click event in matlab. Can someone show me an example?解决方案Define the WindowButtonDownFcn of your figure callback using the set command and an callbackfunction ta…

Python 推导,内含,迭代器

Python语法–推导或内含 list comprehension操作可以将一个序列类型的数据集推导出另一个序列类型的数据集: 典型的情况: for i in aiterator利用推导获取一个平方数列表 square [i * i for i in range(1, 11)]以上情况同如下循环 for i in range(…

用asp.net core结合fastdfs打造分布式文件存储系统

最近被安排开发文件存储微服务,要求是能够通过配置来无缝切换我们公司内部研发的文件存储系统,FastDFS,MongDb GridFS,阿里云OSS,腾讯云OSS等。根据任务紧急度暂时先完成了通过配置来无缝切换内部文件系统以及FastDFS。…

仅仅有人物没背景的图片怎么弄_五分钟写作课 人物篇 人物的出场是个关键时刻...

我看过不少故事,人物出场了,说了几句话,然后离开,读者知道他是某人的爸爸,学校的老师,某个企业的老板,除了这些定为之外,他自己是怎样的性格?怎样的形象呢?没…

数据结构与算法一篇帮助你吃下KMP算法

模式匹配 什么是模式匹配,我们用一个案例来说明: 当S “s1,s2,s3,s4 …sn” T“t1,t2,t3,t4 … tn” 在字符串S中寻找T字符串的过程就是模式匹配的过程,T就说模式串,S是主串 实现方案: 暴力破解,逐字符判…

在远程 CSM 课程中体验线上工作坊

4.11 日周六,我参与了由 Bob 老师组织讲授的一期 Certified Scrum Master(即 CSM)课程,从中收获颇丰,特记于此,与君分享。CSM 通常是现场授课,但本次由于疫情的限制导致人们不得不尽可能减少外出…

python中的max_row_Openpyxl max_row和max_column错误地报告了一个较大的figu

我的查询是处理作为Im开发的解析脚本的一部分的函数。我试图编写一个python函数来查找与excel中匹配值对应的列号。excel是用openpyxl动态创建的,它有第一行(来自第三列)标题,每个标题跨4列合并为一行。在我的后续函数中,我正在分析一些要添加…

数据结构与算法--力扣108题将有序数组转换为二叉搜索树

力扣108提将有序数组转换为二叉搜索树 近一年都比较关注算法相关的知识,也刷了不少题,之前的文章中大多也是算法相关的文章,但是感觉每次遇到树相关的题型都不能应对自如,因此还是有必要在相关知识上下功夫,因此有此次…

C#验证IP是否为局域网地址的三种方法

C#验证IP是否为局域网地址的三种方法前一阵子有【广州.NET群】的客户问起这个问题,说他们需要验证客户输入的网站是否为局域网。其实局域网的 IP并没有确定的定义,只要是局域网中,即可设置为任何一个 IP。但确实存在一个 内网保留地址的定义&…