grpc请求和响应前面多出的5个字节是什么

问题描述 投票:0回答:1

我正在将tensorflow-serving用于深度学习模型服务器,这是grpc服务。为了跟踪服务器的请求和响应,在服务器和客户端中间有一个代理。代理将记录整个http级请求和响应。

(请求,响应)元组需要某种方式可以被人类阅读。所以我需要将grpc请求和响应转换为json格式。由于我有*.proto文件,因此看起来并不难。但是经过一些测试,我发现grpc请求和响应主体在整个主体前面显示了5个(不同的)额外字节数据。

// bytes in the grpc response:
\x00\x00\x00\x00c\nA\n\x07Softmax\x126\x08\x01\x12\x08\x12\x02\x08\x01\x12\x02\x08\n*(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80?\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x1e\n\x07default\x12\x02\x08\x01\x1a\x0fserving_default

// bytes in the raw .pb format:
\nA\n\x07Softmax\x126\x08\x01\x12\x08\x12\x02\x08\x01\x12\x02\x08\n*(\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80?\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x1e\n\x07default\x12\x02\x08\x01\x1a\x0fserving_default

您可以看到那里还有五个字节\x00\x00\x00\x00c。那么...这是什么意思?所有的grpc请求和响应是否都具有此额外功能?还是有更好的方法来解析grpc内容并将其转换为人类可读的结构?

tensorflow grpc tensorflow-serving
1个回答
0
投票

gRPC具有5个字节的标头。在https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md中搜索长度前缀消息。

© www.soinside.com 2019 - 2024. All rights reserved.