http2.0和1.1的区别?

HTTP 2.0与1.1的主要区别体现在以下几个方面:

  1. 通信协议:HTTP/1.1和HTTP/2.0都是基于TCP协议进行通信的。HTTP/1.1引入了长连接(keep-alive),减少了建立和关闭连接的消耗和延迟。而HTTP/2.0则引入了多路复用技术,允许在一个单一的连接上同时处理多个请求和响应,提高了连接的利用率,降低了延迟。
  2. 二进制框架层:HTTP/2.0使用了二进制框架层来封装所有的消息,而不是HTTP/1.1的纯文本格式。这种二进制的编码方式使得HTTP/2.0能够尝试HTTP/1.1所不支持的传输方式,提高了数据传输的效率。
  3. 消息和帧的分割:HTTP/2.0将所有传输的信息分割为更小的消息和帧,并采用二进制格式对它们编码。这些帧对应着特定数据流中的消息,它们都在同一个TCP连接内复用。而HTTP/1.1则是以换行符作为纯文本的分隔符。
  4. 性能优化:相比于HTTP/1.1,HTTP/2.0通过多路复用、报文压缩和服务端推送等技术,进一步提升了网络性能。例如,多路复用允许同时处理多个请求和响应,报文压缩可以减少传输的数据量,服务端推送则允许服务器在客户端需要之前就发送数据。

gRPC有几种请求模式?

gRPC 提供了四种不同的请求和响应模式,它们分别为:

  1. 简单请求/响应(Unary RPC)

    • 客户端发送一个请求给服务端,服务端接收到请求后立即处理并返回一个响应。这是最基础的一次性请求和响应模型,类似于传统的HTTP RESTful API。
  2. 服务端流式(Server-Side Streaming RPC)

    • 客户端发送一个请求给服务端,服务端返回一个数据流,即服务端可以连续发送多个响应消息给客户端,而客户端只需发送一个请求。这种模式适用于需要持续推送数据到客户端的场景,如实时更新或事件流。
  3. 客户端流式(Client-Side Streaming RPC)

    • 客户端发送一个数据流给服务端,服务端接收到所有客户端请求后,返回一个单一响应。在这种模式下,客户端可以分批次或连续发送多个请求,服务端在处理完所有请求后一次性做出响应。适用于批处理或累积计算任务。
  4. 双向流式(Bidirectional Streaming RPC)

    • 双向流式RPC允许客户端和服务端同时发送和接收多个消息,形成全双工通信。在这个模式下,客户端和服务端都可以连续发送多个请求和响应消息,非常适合于需要实时交互的场景,如聊天应用或实时协作编辑。
最后编辑: kuteng  文档更新时间: 2024-04-02 09:53   作者:kuteng