grpc请求和响应前面多出的5个字节是什么
What is the extra 5 bytes in front of the grpc request and response
我正在使用 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 内容并翻译成一些人类可读的结构?
gRPC 有一个 5 字节的头部。在 https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md.
中搜索长度前缀消息
我正在使用 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 内容并翻译成一些人类可读的结构?
gRPC 有一个 5 字节的头部。在 https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md.
中搜索长度前缀消息