无需登录 数据私有 本地保存

gRPC-Web 请求构建器 - 服务调用与响应查看

10
0
0
0
gRPC-Web 请求构建器
Unary & Streaming 服务调用 · 响应解析 · 帧格式预览
服务端点
Metadata / Headers
请求体(JSON)
👋 Hello World 🔍 查询示例 📦 复杂对象 ⬚ 空对象
响应结果
等待发送请求...
响应详情
HTTP 状态-
gRPC 状态码-
gRPC 消息-
耗时-
响应大小-
帧数量-
Trailers
响应后解析显示
请求历史
暂无历史记录,发送请求后将自动保存。
常见问题与知识点
什么是 gRPC-Web?
gRPC-Web 是 gRPC 的浏览器端实现,允许 Web 应用直接调用 gRPC 服务。由于浏览器不支持 HTTP/2 的所有特性(如 trailing headers),gRPC-Web 通过一个代理层(如 Envoy、gRPC-Web Proxy)来桥接浏览器和 gRPC 服务端。它支持 Unary 和 Server Streaming 两种调用模式。
gRPC-Web 请求的帧格式是怎样的?
gRPC-Web 使用长度前缀的帧格式:
请求帧:[1字节压缩标志(0=未压缩)] + [4字节大端序消息长度] + [消息体]
响应数据帧:[1字节标志(0x00)] + [4字节长度] + [消息体]
响应Trailer帧:[1字节标志(0x80)] + [4字节长度] + [trailer数据]
Trailer 中包含 grpc-statusgrpc-message 等关键信息。
gRPC-Web 需要代理吗?
是的,通常需要。浏览器本身无法直接与 gRPC 服务端通信(因为需要 HTTP/2 trailers 等特性)。推荐使用 Envoy 作为 gRPC-Web 代理,它可以将 gRPC-Web 请求转换为标准的 gRPC 请求。也有一些轻量级代理如 grpcwebproxy 可供选择。
常见的 gRPC 状态码有哪些?
0 (OK) - 成功;1 (CANCELLED) - 已取消;2 (UNKNOWN) - 未知错误;3 (INVALID_ARGUMENT) - 参数无效;4 (DEADLINE_EXCEEDED) - 超时;5 (NOT_FOUND) - 未找到;6 (ALREADY_EXISTS) - 已存在;7 (PERMISSION_DENIED) - 权限不足;13 (INTERNAL) - 内部错误;14 (UNAVAILABLE) - 服务不可用;16 (UNAUTHENTICATED) - 未认证。
gRPC-Web 支持哪些 Content-Type?
主要有四种:
application/grpc-web+proto - 二进制 Protobuf 格式(最常用)
application/grpc-web+json - JSON 格式(便于调试)
application/grpc-web-text+proto - Base64 编码的 Protobuf
application/grpc-web-text+json - Base64 编码的 JSON
text 类型主要用于绕过不支持二进制负载的中间设备。
如何调试 gRPC-Web 请求?
可以使用本工具构建和预览请求帧格式。另外,浏览器开发者工具的 Network 面板可以查看 HTTP 请求头(如 grpc-timeoutx-grpc-web)。响应体由于是二进制帧格式,建议使用本工具解析或使用支持 gRPC-Web 的调试代理。