网络原理,了解xml, json,protobuffer的特点

这篇具有很好参考价值的文章主要介绍了网络原理,了解xml, json,protobuffer的特点。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

外卖服务器场景带入

大佬们通用的规范格式


一、👦

外卖服务器场景

外面服务器沟通有很多模式——展示商家列表等等,只是其中一个,因此需要一个统一的规划了——不同应用程序,里面的自定义格式是不一样的,这样的设计十分灵活,最好要有一个统一的标准,

显示商家列表,有很多项,每一项包含了一些信息,商家名称,图片,好评率等等,距离你的位置,评分等等

设计:

1.明确当前请求和响应,包含哪些信息(根据需求来)

请求如:用户身份,用户当前位置,商家名称,图片,好评率····

2.明确具体的请求和响应格式

示例:请求1234,80,100\n

明确格式,就是看你按照啥样的方式构造出一字符串,后续这个字符串可根据TCP/UDP的payload进行传输,另一方面服务器可以对这个字符串进行解析,解析出逗号前面的是useld,逗号前面是经纬度···这种

响应:麻辣烫,2,jpg,99%,1.2km,4.8\n,->这个时候构造出一个响应这样的字符串,客户端可按照这样的格式进行解析。

网传的数据,本质是字符串(准确的说二进制“字符串”(更像字节串,⚠️当然没有这种东西,但是可以这么理解)无法直接传输JAVA对象这样的内容,JAVA写代码,都是各种的对象,但是发送数据的时候,就需要把对象转换为(二进制)字符串(叫做序列化),但是收到数据的时候,也会把“二进制”转换成字符串(反序列化


二、👧

实际上不管怎么约定都可以,只要保证客户端和服务器遵守一个原则就好

示例:

网络原理,了解xml, json,protobuffer的特点,计算机网络(java方面),开发语言,java,json,网络,udp,xml


三、😾

然后有一些牛逼哥:搞出一些通用的格式,可以参考

1.XML:以成对为标签,来表示键值对信息,同时标签支持嵌套,就可以构成一些更复杂的树型结构数据

请求:
<request>
         <useId>1234<useId>           <-(表示的是键值对结构,key:userId,value:1234)
         <position>100*80</position>   (对象,本质上是键值对,属性名字是键,属性的值就是值)
</request>. ->(结束标签)

XML:很像我们之前写的html5(省略吧),里面的标签都是程序员自己定义的

优点:XML非常清晰的把结构化数据表示出来了

缺点:表示数据需要引入大量标签,看起来繁琐,同时也会占用不少带宽<-(国内最贵)

2.json(主流)

本质也是键值对,看起来比xml干净

请求:{
userId:1234
position:"100  80"
} 
(json中,用{}表示键值对,表示【】数组,数组中有个元素,可以是数字,可以是字符串,还可以其他的{},或者【】
响应{
name:"凉皮",
image:'1.jpg',
distance:'1km',
rate:96%,
star:4.7
}

也是键值对,当前最主流的格式,未来会常用,json对换行不敏感,假如这些内容放在同一行,也完全合法,一般网络传输的时候,会对json压缩(去掉不必要的换行,空格)会把所有数据放到同一行去,整体占用的带宽更降低了(影响可读性),有很多现成的json格式化工具(“一键还原成可读性的”)

优势:相比于xml,表示的数据简洁很多,可读性非常好的,方便程序员观察中间结果,方便调试问题。

劣势:终究花费一定的带宽来传输key的名字的

3.protobuffer:

谷歌提出来的一套,二进制的数据序列化方式,使用二进制的方式,约定某几个字节表示哪个属性···,最大程度的节省空间(不必传输key,根据位置和长度,区分每个属性的)

优点:节省带宽,最大化效率

缺点:二进制数据,无法肉眼观察,不方便调试,使用起来比较复杂,需要专门编写一个proto文件,描述数据的格式是咋样的->再进一步通过人家提供的工具,把proto文件转换成一些代码,再嵌入到程序中使用的(这个主要用于,对于性能要求更高的环境,属于是牺牲开发效率,换来“运行效率”)

写代码模块:

开发效率>运行效率(一般情况下)

开发效率:程序员写代码的速度

运行效率:软件跑的快不快。

开发效率,要是想提高就找程序员们->(开发中:人力成本,程序猿们的工资,相比一个买的更高级硬件,肯定是开发效率更重要,人力成本更好,当然你要是计算火箭那种需要速度的,要求时间更短,这是c++主场,🌚🌚🌚请远离java,人工智能这东西的底层就是c++)文章来源地址https://www.toymoban.com/news/detail-703636.html

到了这里,关于网络原理,了解xml, json,protobuffer的特点的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入了解OSI模型:计算机网络的七大层次

    目录 OSI模型 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 OSI模型是一个网络通信的概念模型,用于描述计算机网络中各个不同层次之间的通信和功能。它将网络通信分为七个不同的层次,每个层次负责不同的任务,使得网络通信的设计、开发和管理更加模块化和

    2024年02月07日
    浏览(39)
  • 深入了解ESP8266WIFI模块的工作原理及特点---AT指令详解---透传概念----TCP和UDP的特点与区别-嵌入式软件面试常问

    为什么要拿这个简单的模块来讲一下呢?因为根据本人最近嵌入式软件面试来看,对于我们嵌入式应届,面试官主要问我们简历上做过的项目,大多应届生应该都接触过ESP8266或者ESP32吧,他们经常会对我们使用过的模块进行深入的追问,我们很有必要将自己使用过的模块深入学

    2024年04月27日
    浏览(43)
  • 【计算机网络原理】第一章:计算机网络概述

    1、计算机网络的诞生 从技术范畴来看,计算机网络是计算机技术与通信技术相互融合的产物。 2、计算机网络的定义 计算机网络是互连的、自治的计算机的集合 1)自治: 互连的计算机系统彼此独立,不存在主从或者控制与被控制的关系。 2)互连: 利用通信链路连接相互独立

    2024年04月08日
    浏览(48)
  • 计算机网络原理 实验 网络协议配置及网络资源共享

    1. 熟悉Windows中的网络协议的配置。 2. 掌握局域网在资源共享方面的应用。 1.网络协议三要素:语法、语义、同步 2. ISO/OSI模型(七层结构)、TCP/IP模型(五层结构) 3. 网络资源共享:其他用户可以通过网络查看用户计算机的共享资源 安装Windows Server 2003的计算机、交换机(

    2024年02月04日
    浏览(50)
  • 网络安全 Day20-计算机网络基础知识05(网络原理)

    OSI 7层网络通信原理模型 OSI 国际网互联 OSI 数据包封装解封装过程 北京局域网主机A到深圳局域网主机B数据工作流程 排查网线,排查网卡,排查网卡的驱动 查看网卡IP,没有配置 IP、网关、DNS配置正确 ping百度是否能上网(ping是icmp协议) 如果ping不同,判断DNS是否有问题 p

    2024年02月15日
    浏览(59)
  • 计算机网络原理tips

    DNS(Domain Name System) 1.作用: 是将域名(例如:www.lcvnsfvrhe.cn)转换成对应的IP地址(例如:192.0.10.1)【 即   将域名(网址)解析为IP地址】,便于在互联网上定位和访问服务器。 2.关键名词解释: 根域名服务器 用于存储和维护 顶级域名服务器  的信息。 根域名服务器 主

    2024年02月15日
    浏览(41)
  • 计算机网络原理之【网络层】IP数据报分片

    1、尽可能少分片; 2、一个最大分片可封装的数据字节数最好是 8的倍数 。 1、首部的 标识字段 → 判断是否属于同一个IP数据报; 2、分片首部的 标志字段(MF) → 判断是否是最后一个分片; 3、 片偏移字段 → 判断分片的先后顺序,判断是否缺少IP分片。 通过工具发送一个

    2024年02月05日
    浏览(38)
  • 计算机网络-AAA原理概述

    对于任何网络,用户管理都是最基本的安全管理要求之一,在华为设备管理中通过AAA框架进行认证、授权、计费实现安全验证。 AAA(Authentication(认证), Authorization(授权), and Accounting(计费))是一种管理框架,它提供了授权部分用户访问指定资源和记录这些用户操作行为的安全机

    2024年01月24日
    浏览(38)
  • 【javaEE】计算机网络原理初始

    目录 1、网络发展史 1.1、独立模式 1.2、网络互连 1.2.1、局域网(LAN) 1.2.2、广域网(WAN) 1.2.3、广域网和局域网的区别 1.2.4、局域网组建网络的方式 (了解) 2、网络通信基础 2.1、IP地址 2.2、端口号  2.3、认识协议 2.4、协议分层 2.5、OSI七层网络模型 2.6、TCP/IP五层模型 2

    2024年02月07日
    浏览(43)
  • 计算机网络——08应用层原理

    编程 在不同的端系统上运行 通过网络基础设施提供的服务,应用进程批次通信 如 Web Web 服务器软件与浏览器软件通信 网络核心 中没有应用层软件 网络核心没有应用层功能 网络应用只能在端系统上存在 快速网络应用开发和部署 可能的应用架构 客户-服务器模式(C/S) 对等

    2024年02月19日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包