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

【计算机网络 - 基础问题】每日 3 题(二)

✍个人博客:Pandaconda-CSDN博客
📣专栏地址:http://t.csdnimg.cn/fYaBd
📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪
📝推荐参考地址:https://www.xiaolincoding.com/(这个大佬的专栏非常有用!)

4. Json 格式描述

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于将数据从一个程序转换到另一个程序。它以易于阅读和编写的方式表示结构化数据。
JSON 使用键值对 (key-value pairs) 的方式来表示数据,其中键是字符串,值可以是字符串、数字、布尔值、数组、对象或者 null。
以下是 JSON 格式的描述:

  1. 对象(Object):用花括号({})表示,包含一组键值对,键和值之间用冒号(:)分隔,不同键值对之间用逗号(,)分隔。例如:
{"name": "John","age": 30,"city": "New York"
}
  1. 数组(Array):用中括号([])表示,包含一组值,值之间用逗号(,)分隔。数组可以包含字符串、数字、布尔值、对象、数组或者null。例如:
    [ “apple”, “banana”, “orange” ]
  2. 字符串(String):用双引号(")包裹的文本。例如:
    “Hello, World!”
  3. 数字(Number):可以是整数或浮点数。
  4. 布尔值(Boolean):可以是 true 或 false。
  5. 空值(Null):表示一个空值。

JSON 的格式描述非常简洁和易读,这使得它成为了一种通用的数据交换格式,在 Web 应用程序和 API 之间广泛使用。

5. Protobuf 协议了解吗?

Protobuf 是一种用于序列化结构化数据的二进制格式,由 Google 开发。它与 JSON 和 XML 相比,具有更高的效率和更小的存储空间。下面是一些关于 Protobuf 的要点:

  1. 结构化数据定义:Protobuf 使用 .proto 文件来定义数据结构和消息。在 .proto 文件中,你可以定义消息的字段和类型以及消息之间的关系。
  2. 语言无关:Protobuf 支持多种编程语言,包括 Java、C++、Python 等。通过使用 Google 提供的 Protobuf 编译器,可以将 .proto 文件编译成对应语言的代码文件,从而方便在不同的编程环境中使用。
  3. 二进制编码:与文本格式的 JSON 和 XML 不同,Protobuf 使用二进制编码,使得数据传输和存储更加高效。相同的数据结构和内容,在 Protobuf 中的表示通常比 JSON 或 XML 更小,序列化和反序列化的性能也更好。
  4. 高效的数据交换:Protobuf 不仅可以用于数据的持久化和存储,还可以用于网络通信和数据交换。将结构化数据序列化成 Protobuf 格式后,在不同的系统之间传输和解析数据变得更加高效。
  5. 向后兼容性:使用 Protobuf 定义的数据结构具有较好的向后兼容性。如果你需要对数据结构进行更新或扩展,可以通过定义新的字段和消息来实现,而不会破坏旧版本的数据。

虽然 Protobuf 在某些方面与 JSON 和 XML 有些不同,但它在性能和存储方面提供了更好的效率和可扩展性,因此被广泛应用于各种需要高效数据交换和通信的领域,如分布式系统、大型数据存储和网络通信等。

6. 为什么需要 URL 编码?

URL 编码是将 URL 中的特殊字符转换为特定格式的编码,以便在互联网上进行可靠的传输和处理。以下是需要 URL 编码的几个主要原因:

  1. 特殊字符处理:URL 中包含一些特殊字符,如空格、问号、引号、斜杠等。这些特殊字符在 URL 中有特定的含义,如果直接使用它们作为 URL 的一部分,可能会引起解析错误或混淆。URL 编码可以将这些特殊字符转换为特定的编码,保证 URL 的正确性和可解析性。
  2. 网络传输支持:URL 经常用于在网络上传输,包括通过 HTTP 请求发送 URL 或在网页中链接到其他页面。网络传输过程中,一些特殊字符可能会被不同的网络设备或协议解析错误,导致数据丢失或导航错误。URL 编码可以在传输过程中保证数据的完整性和可靠性。
  3. 多语言支持:URL 编码还可以处理多语言字符。由于 URL 是基于 ASCII 字符的,如果 URL 中包含非 ASCII 字符,如中文、日文等,必须将其转换为编码形式。URL 编码可以将非 ASCII 字符转换为 %XX 的形式,使其在 URL 中可传输和处理。

总之,URL 编码是为了确保 URL 的正确性、可解析性和安全性而进行的处理。通过将特殊字符转换为编码格式,可以保证 URL 在互联网上的传输和解析过程中不会引起问题,并能够支持多语言字符的处理。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • linux: nvidia-smi用法详解
  • 二.Unity中使用虚拟摇杆来控制角色移动
  • Unity 第一人称游戏的武器被其他物体覆盖解决方案
  • 供应RM500UCNAB-D10-SNADA模块
  • leetcode 108.将有序数组转换为二叉搜索树
  • word文档无损原样转pdf在windows平台使用python调用win32com使用pip安装pywin32
  • 嵌入式epoll面试题面试题及参考答案
  • Maven私服Nexus安装及使用
  • 第7篇:【系统分析师】计算机网络
  • openCV的python频率域滤波
  • 从底层原理上理解ClickHouse 中的 Distributed 引擎
  • 第四届长城杯部分wp
  • 【C++题解】1398. 奇偶统计
  • 依据出生人数预测高等教育发展趋势
  • [项目][WebServer][解析错误处理]详细讲解
  • __proto__ 和 prototype的关系
  • 2017-08-04 前端日报
  • Golang-长连接-状态推送
  • rabbitmq延迟消息示例
  • vagrant 添加本地 box 安装 laravel homestead
  • 编写符合Python风格的对象
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 微信支付JSAPI,实测!终极方案
  • 我的zsh配置, 2019最新方案
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 责任链模式的两种实现
  • kubernetes资源对象--ingress
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #if 1...#endif
  • #pragma data_seg 共享数据区(转)
  • (04)odoo视图操作
  • (1)svelte 教程:hello world
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (四) Graphivz 颜色选择
  • (转载)虚函数剖析
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .net core控制台应用程序初识
  • .net(C#)中String.Format如何使用
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .Net7 环境安装配置
  • .net知识和学习方法系列(二十一)CLR-枚举
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • ?php echo $logosrc[0];?,如何在一行中显示logo和标题?
  • @Autowired 与@Resource的区别
  • @RequestMapping处理请求异常
  • @vue-office/excel 解决移动端预览excel文件触发软键盘
  • [\u4e00-\u9fa5] //匹配中文字符
  • [] 与 [[]], -gt 与 > 的比较
  • [20171102]视图v$session中process字段含义
  • [8-27]正则表达式、扩展表达式以及相关实战
  • [ABC294Ex] K-Coloring