Streaming gRPC客户端流是如何实现的

Streaming gRPC客户端流是如何实现的,streaming,grpc,http2,Streaming,Grpc,Http2,gRPC客户端流/双向流是如何使用HTTP/2实现的? 服务器流是有意义的,因为它可以利用服务器推送来发送对请求的多个响应,但我不清楚它如何像通过websocket那样通过HTTP/2传递双向消息。gRPC将流编码为HTTP体。每条消息前都有一个五字节的报头,由消息长度和一个标志字节组成。它不使用服务器推送或其他特定于HTTP/2的流媒体功能 gRPC的核心是流媒体。一元单请求、单响应和服务器流单请求只是生成更干净的API或更优化的I/O行为的特例。但在网络上,一切看起来都和流媒体一样 HTTP

gRPC客户端流/双向流是如何使用HTTP/2实现的?
服务器流是有意义的,因为它可以利用服务器推送来发送对请求的多个响应,但我不清楚它如何像通过websocket那样通过HTTP/2传递双向消息。

gRPC将流编码为HTTP体。每条消息前都有一个五字节的报头,由消息长度和一个标志字节组成。它不使用服务器推送或其他特定于HTTP/2的流媒体功能

gRPC的核心是流媒体。一元单请求、单响应和服务器流单请求只是生成更干净的API或更优化的I/O行为的特例。但在网络上,一切看起来都和流媒体一样

HTTP/1规范允许但不要求流式连接和双向连接,但某些实现不支持它们。但是由于HTTP/2的性质,不支持它们通常需要做更多的工作。此外,没有十年历史的HTTP/2代理会导致兼容性问题;gRPC能够与HTTP/2生态系统合作,以鼓励支持流媒体


有关gRPC编码的更多信息,请参阅gRPC,尤其是长度前缀消息。

gRPC将流编码为HTTP正文。每条消息前都有一个五字节的报头,由消息长度和一个标志字节组成。它不使用服务器推送或其他特定于HTTP/2的流媒体功能

gRPC的核心是流媒体。一元单请求、单响应和服务器流单请求只是生成更干净的API或更优化的I/O行为的特例。但在网络上,一切看起来都和流媒体一样

HTTP/1规范允许但不要求流式连接和双向连接,但某些实现不支持它们。但是由于HTTP/2的性质,不支持它们通常需要做更多的工作。此外,没有十年历史的HTTP/2代理会导致兼容性问题;gRPC能够与HTTP/2生态系统合作,以鼓励支持流媒体


有关gRPC编码的更多信息,请参阅gRPC,特别是长度前缀消息。

因此,在这种情况下,在双向流传输的情况下,在接收整个请求之前发送响应头和正文中的消息?是的,可能是。这里有两个独立的概念:流式传输多条消息和双向通信同时发送和接收。流式传输在HTTP/1中很常见,用于大型文件的上载/下载。在HTTP/1中,在接收整个请求之前进行响应是常见的错误,如404。Bidi的功能更强大,因为它允许服务器在开始响应后继续接收。实际上在HTTP/1中很少看到这种情况,因为状态代码已经返回;任何后续处理错误都是非标准通信。因此,在这种情况下,在双向流的情况下,在接收整个请求之前发送正文中的响应头和消息?是的,可能是这样。这里有两个独立的概念:流式传输多条消息和双向通信同时发送和接收。流式传输在HTTP/1中很常见,用于大型文件的上载/下载。在HTTP/1中,在接收整个请求之前进行响应是常见的错误,如404。Bidi的功能更强大,因为它允许服务器在开始响应后继续接收。实际上在HTTP/1中很少看到这种情况,因为状态代码已经返回;任何后期处理错误都是非标准通信。