当前位置: 首页 > 知识库问答 >
问题:

grpc 和 http 之间有关系吗?

丁震博
2024-07-12

在工作项目中前后端采用了 grpc 的方式通讯,我们约定一份 .proto 文件,然后进行开发。但由于我本人是前端开发,就导致接口文件基本上都是后端开发来编写的,我用到的时候直接调用生成好的 ts 文件就行了,所以对这方面的理解一直模棱两可。

问题:grpc 的方式和传统的 http 通信方式有什么区别呢?(相较于 http grpc 有什么优劣呢?)

共有2个答案

万俟鸿波
2024-07-12
  • 跟你过年回家坐飞机,坐火车,开车,回家是一样的道理,起点终点都是一样的。
  • 做的事情是一个,都是实现了在socket之上的网络传输协议和传输的数据的序列化反序列化方式。
  • http http协议,序列化常用格式json、xml等
  • grpc grpc协议,系列化常用格式Protocol Buffers
邹禄
2024-07-12

HTTP和gRPC是两种不同的网络通信协议,它们在设计理念、性能、使用场景等方面各有优劣。

HTTP的优势:

  1. 广泛兼容性:HTTP是互联网上使用最广泛的协议,几乎所有的网络设备、浏览器都支持HTTP。
  2. 简单易用:基于文本的协议,易于开发和调试。
  3. 无状态:每个请求都是独立的,不需要保持状态,易于扩展。
  4. 丰富的中间件生态:如缓存、负载均衡、安全认证等。
  5. 支持多种数据格式:如JSON、XML等,灵活性高。

    HTTP的劣势:

  6. 性能:相比二进制协议,基于文本的HTTP协议在数据传输上不够高效。
  7. Header冗余:每次请求都需要携带完整的Header信息,增加了传输的数据量。
  8. 同步阻塞:传统的HTTP请求是同步的,客户端在等待响应期间无法进行其他操作。

    gRPC的优势:

  9. 高性能:基于HTTP/2协议,使用二进制传输,数据包体积小,解析速度快。
  10. 流式通信:支持双向流、服务器流和客户端流,适用于需要高并发的场景。
  11. 服务端推送:服务器可以主动向客户端推送信息。
  12. 定义明确的接口:使用Protocol Buffers定义服务接口和消息格式,接口更加规范和严格。
  13. 多语言支持:支持多种编程语言,便于跨语言的服务调用。

    gRPC的劣势:

  14. 复杂性:相对于HTTP,gRPC的使用和调试更加复杂。
  15. 浏览器支持:虽然gRPC-Web可以用于浏览器,但原生gRPC在浏览器中的支持并不好。
  16. 中间件生态:相较于成熟的HTTP中间件生态,gRPC的中间件相对较少。
 类似资料:
  • 问题内容: SciPy似乎在其自己的名称空间中提供了NumPy的大多数(但不是全部[1])功能。换句话说,如果有一个名为的函数,几乎可以肯定有一个。在大多数情况下,两者看起来是完全相同的,甚至有时指向相同的功能对象。 有时,它们是不同的。举一个最近出现的例子: 是一个ufunc该返回的NaN为负参数; 返回负参数的复杂值,并且似乎不是ufunc。 同样可以说,大约,和,但不是关于[2]。 另一方面

  • 我在下面的某个地方看到了代码片段。 由于前面提到的代码片段工作得很好,它表明std::cout是从std::ostream派生而来的。但我还找不到任何直接的参考资料。 根据文件,其中说[强调我的]: 全局对象std::cout和std::wcout控制输出到实现定义类型的流缓冲区(源自std::stream buf),与标准C输出流stdout相关联。 上面的引文表示,控制输出到派生自std::s

  • 问题内容: 即使阅读了很多书,我仍然对 CommonJS,AMD 和 RequireJS 感到非常困惑。 我知道 CommonJS (以前称为 ServerJS )是用于在浏览器之外使用该语言时定义一些 JavaScript 规范(即模块)的组。 CommonJS 模块规范具有一些实现,例如 Node.js 或 RingoJS ,对吗? CommonJS , 异步模块定义 (AMD)和 Requi

  • 度量可以度量一些有用的领域,但是有什么区别和联系呢?

  • 感谢(在Spring中使用@Valid vs@Validated)以及在Spring中使用@Valid和@Validated之间的差异。我现在明白他们之间的区别了。 然而,我无法理解特定的场景。 我在控制器endpoint中接收到一个整数,我想使用JSR-303进行验证(我只会使用最小值(1)),以确保得到一个整数 困惑-在我将放在控制器类上,尝试后,设置才起作用,但没有起作用。只是想弄明白为什么

  • 本文向大家介绍各种协议与HTTP协议之间的关系?相关面试题,主要包含被问及各种协议与HTTP协议之间的关系?时的应答技巧和注意事项,需要的朋友参考一下 一般面试官会通过这样的问题来考察你对计算机网络知识体系的理解。 图片来源:《图解HTTP》