首页 > 其他分享 >grpc服务报错: http2 frame too large

grpc服务报错: http2 frame too large

时间:2023-10-15 10:56:19浏览次数:40  
标签:HTTP grpc frame large 报错 too

报错如下:

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加成的情况下,会自动集成证书,帮助完成校验,才能正常交互(具体需要抓包自证,不过不携带证书,必然访问失败,所以也可暂时反推这个结果。)

标签:HTTP,grpc,frame,large,报错,too
From: https://www.cnblogs.com/supermarx/p/17765368.html

相关文章

  • Transpose a data frame in R语言 转置
     #firstrememberthenamesn<-df.aree$name#transposeallbutthefirstcolumn(name)df.aree<-as.data.frame(t(df.aree[,-1]))colnames(df.aree)<-ndf.aree$myfactor<-factor(row.names(df.aree))str(df.aree)#CheckthecolumntypesR......
  • R data.frame 常见操作
    #创建data.framestudent<-data.frame(ID=c(11,12,13),Name=c("Devin","Edward","Wenli"),Gender=c("M","M","F"),Birthdate=c("1984-12-29","1983-5-6","1986-8-8”)) #修改行名称row......
  • r - How do I order by row.names in dataframe R语言 排序
     new_df<-df[order(row.names(df)),]REF:https://stackoverflow.com/questions/20295787/how-can-i-use-the-row-names-attribute-to-order-the-rows-of-my-dataframe-in-rhttps://stackoverflow.com/questions/25194196/how-do-i-order-by-row-names-in-dataframe......
  • 从链接器的角度详细分析g++报错: (.text+0x24): undefined reference to `main'
    /usr/bin/ld:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o:infunction`_start':(.text+0x24):undefinedreferenceto`main'collect2:error:ldreturned1exitstatus  在使用g++编译链接两个C++源文件main.cpp以及VecAdd.cpp时出现了以上......
  • npm安装依赖报错npm ERR code ENOTFOUND npm ERR errno ENOTFOUND
    第一种方法:1:执行:npmconfiggetproxynpmconfiggethttps-proxy如两个返回值都为null,则直接执行第二步,要确保两个返回值都是null才可以,否则就要执行下面的代码:npmconfigsetproxynullnpmconfigsethttps-proxynull2:执行npmconfigsetregistryhttp://regis......
  • mysql报错:You must reset your password using ALTER USER statement before executin
    新安装mysql后,登录后,执行任何命令都会报错:YoumustresetyourpasswordusingALTERUSERstatementbeforeexecutingthisstatement.【解决办法】MySQL版本5.7.6版本以前用户可以使用如下命令:mysql>SETPASSWORD=PASSWORD('Admin2022!');MySQL版本5.7.6版本开始的用户可以使......
  • 无涯教程-Matplotlib - 3D线框图(Wireframe)
    线框图采用值的网格并将其投影到指定的三维表面上,并使生成的三维形式非常容易可视化。plot_wireframe()函数用于此目的-frommpl_toolkitsimportmplot3dimportnumpyasnpimportmatplotlib.pyplotaspltdeff(x,y):returnnp.sin(np.sqrt(x**2+y**2)) x=......
  • 关于Cortex-M3报错解决方法总结:Flash Download failed错误
    事情原因:在一次使用ST-LINKv2下载程序时,突然出现Error:FlashDownloadFailed-"Cortex-M3”这个错误,显示没有错误,没有警告。芯片型号接线都没有问题。当时就很摸不着头脑,然后上网查看了一下。原来是因为STM32F103C8T6有64kFlash和20kRAM,tm他们不属于高容量的Flash。所以我改了......
  • 在Node.js项目中使用node-postgres连接postgres以及报错指南
    什么是node-postgres官方文档nodepostgres是node.js模块的集合,用于与PostgreSQL数据库接口。它支持回调、promise、async/await、连接池、准备好的语句、游标、流式结果、C/C++绑定、富类型解析等等!就像PostgreSQL本身一样,它有很多功能:本文档旨在让您快速、正确地运行。它还试图......
  • Vue3 + Quasar系列-代码配置以及报错汇总记录(不断更新中)
    1.Vue3+Quasar系列-代码配置打包去掉hash后缀去掉hashhttps://quasar.dev/quasar-cli-vite/developing-pwa/configuring-pwa2.Vue3+Quasar改变主题背景quasar的样式和其他的框架修改不太一样,需要我们使用动态的方式来进行变更,一般来说有两种方案进行主题修改方案一:......