报错如下:
1 4xx BadRequesterror reading server preface: http2: frame too large
其中4xx为客户端报错中的一个具体数字。比如: 404/415,仅以报错举例,且出现报错码不固定。
但是error msg的核心内容不变: frame too large...
这个是因为客户端在没有 TLS 加密的情况下发送 HTTP/2 帧,服务器端在 HTTP 1.1 中以未加密的 HTTP 正文发回错误消息。
grpc是以http2.0进行交互,而客户端如果由于某些原因,将http转为2.0以下的标准,则会出发这个报错。
以golang的grpc举例规避:
proxyCA := "/var/tmp/fullchain.pem" // CA cert that signed the proxy f, err := os.ReadFile(proxyCA) p := x509.NewCertPool() p.AppendCertsFromPEM(f) tlsConfig := &tls.Config{ RootCAs: p, } conn, err := grpc.Dial(*addr, grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)))
特别需要指出:
在postman加成的情况下,会自动集成证书,帮助完成校验,才能正常交互(具体需要抓包自证,不过不携带证书,必然访问失败,所以也可暂时反推这个结果。)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!