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

深入应用层协议定制:从确定通信内容到选择数据组织方式的完整攻略

引言

在网络通信的架构中,应用层直接对接各类应用程序,是程序员实现网络功能的核心战场。无论是社交软件的消息传递,还是电商平台的订单处理,背后都离不开应用层协议的支撑。而这些协议并非一成不变,很多时候需要程序员根据具体业务需求量身定制。
那么,如何完成应用层协议的定制呢?接下来,我们将以大家熟悉的点外卖场景为例,一步步拆解协议定制的完整过程,从明确信息传递需求到约定数据组织格式,带你深入理解应用层协议定制的精髓。

应用层的协议

应用层直接和应用程序相关,程序员所写的代码只要是和网络通信相关的都可以视为应用层的一部分。
所以应用层中设计到的网络通信协议,很多也都是程序员自己所定制的。

那么我们如何来定制协议呢?
1.根据需求来明确需要传递哪些信息
2.约定好信息组织的格式

定制协议的过程

下面我们以点外卖的场景为例来讲解一下定制协议的过程~~~

1.根据需求来明确需要传递哪些信息

当我们进入点外卖平台的时候会显示一些商家的列表,接下来我们需要明确客户端和服务器之间要传递的信息。
首先客户端会向服务器发出请求,应当包含以下信息:
用户的位置(通常以经纬度的形式表示),用户的id
然后当服务器收到上述信息之后经过一番处理会给出相应的响应,响应应当包含以下信息:
商家的id,商家的位置,商家的图片,评分,配送费,种类

2.约定好信息组织的格式

这里面的格式有很多种,我们一一来讲解:
(1)行文本方式
请求的格式如下:
用户id,用户的位置\n
相应的格式如下:
一个响应应当由多行数据组成,每一行数据中又包含很多列,最终以空行来结尾

当然上述的这种格式只是我个人所定制的,在实际中我们可以根据自己的喜好来进行变换。
比如列与列之间的分隔符不一定用,也可以用;

当然这种方案是较为“原始”的,在20年前还较为常用。

(2)通过xml格式来约定请求和响应的数据

xml的格式和html的格式较为类似,但是xml中的标签我们是可以自己定义的。
我们可以把请求的格式定义如下:

我们可以把响应的格式定义如下:

这种方式的优点是可读性较高,但是缺点也很明显就是冗余信息较多,这样的信息在网络传输会消耗更多的带宽。

(3)json 这是当下最为流行的网络数据格式组织的方案
在这种方式之下,我们可以这样定义请求:

这样的方式的优点就是可读性也较为良好,它所消耗的带宽也比刚刚的xml要少。
但是缺点是还是存在冗余信息。
下面我们就引入protobuf

(4)protobuf

这种方式存储数据是基于二进制的格式,从而可以实现对数据的压缩。
这样的方式就不会包含冗余信息了。
很明显这种方式所消耗的带宽是最少的,但是可读性也变差了。

protobuf会进行约定这一段二进制数据中的哪几个字节表示某个特定的信息。

结语

通过点外卖这一贴近生活的场景,我们清晰地看到了应用层协议定制的全流程:先基于业务需求精准梳理出客户端与服务器间需传递的关键信息,再从行文本、XML、JSON 到 Protobuf 等多种格式中,根据可读性、带宽消耗等需求选择合适的数据组织方式。行文本格式虽 “原始” 却简单直接,曾在早期网络通信中广泛应用;XML 格式可读性强但冗余信息多,带宽成本较高;JSON 格式兼顾可读性与轻量化,成为当下主流选择;而 Protobuf 以二进制存储实现极致压缩,最大程度降低带宽消耗,却失去了部分可读性。

http://www.dtcms.com/a/467572.html

相关文章:

  • 苍山做网站网站上做旅游卖家要学什么
  • 怎样制作一个个人网站建设一个网站的硬件要求吗
  • 面向MCP协议API的智能测试框架:多源数据融合与协议自适应研究
  • 医疗设备控制系统中同步与异步通信的架构设计
  • 怎么上传网站iis世界500强企业名单排名
  • 怎么做游戏网站编辑建设一个网站多少钱呢
  • 建设网站dns如何设置做网站需要那些东西
  • 服务器配置isaacsim报错没有图形化窗口/串流方案
  • 中英文网站开发费用Python电影网站开发
  • ui设计公司官网昆明seo网站排名优化
  • tp3.2.3网站开发实例本地服务类网站成本
  • 网站开发中的文档公司网站建设价格
  • 秦皇岛做网站优化价格建个什么网站
  • 如何给网站做优化短视频万能素材库
  • 泰兴网站优化个人网站的域名
  • 职业学校查询网站电商网站建设目的
  • 汕头市营商环境建设监督局网站wordpress轻博客主题
  • 网站开发费用是无形资产wordpress论坛源码
  • 联合建设官方网站浙江省建设监理协会网站
  • 龙口网站建设公司周口学做网站
  • 对接标准做好门户网站建设怎么制做网站
  • 如何做app网站网络营销师证怎么考
  • wordpress自学网站推广与优化方案
  • 网站建设平台有哪些 谢谢平台建站电脑浏览器打不开网页是什么原因
  • 本地网站源码自适应自助建站网站
  • html5风格网站特色设计师培训招生视频
  • uniapp修改原生导航栏样式、加图标、加文字、加点击事件
  • 如何知道一个网站的流量网站建设实训总结2000字
  • 网站的建设模式是指什么北京封闭小区名单最新
  • 为什么推荐企业做网站腾讯企业邮箱免费