http2 自定义请求头在批量请求时会报错

2020-11-02 20:56:24 +08:00
 shentibeitaokong

发现一个神奇的问题,一次性发送 200 个 http2 请求,如果该请求头( request headers )上有自定义的请求头,其一定会出现部分请求失败,报错net::ERR_HTTP2_SERVER_REFUSED_STREAM,但是如果该请求的请求头是干净的(也就是没有自定义的请求头,其就不会有问题)。而且将这些 h2 的请求转成 http1.1 时,该批量请求无论请求头如何都不会有问题!就知道这方面的大佬回答一下吗?或者给点思路!跪谢

1707 次点击
所在节点    JavaScript
5 条回复
muzuiget
2020-11-03 08:54:03 +08:00
没看懂你怎么一次性发送 200 个请求,一个 TCP 链接堆 200 个 HTTP 请求,还是 200 个 TCP 链接?这种情况就全看服务端实现限制。
leopod1995
2020-11-03 11:36:48 +08:00
https://tools.ietf.org/html/rfc7540#section-5.1.2

并发超过了参数 SETTINGS_MAX_CONCURRENT_STREAMS 的值,有些 stream 就被拒绝
shentibeitaokong
2020-11-04 11:33:57 +08:00
@muzuiget 哦哦 我表述有误,不好意思,就是长度 200 的数组中循环去发送请求
shentibeitaokong
2020-11-04 11:34:58 +08:00
@leopod1995 但是我如果没有自定义请求头,其不会报错 stream 拒绝,只有自定义请求头的情况下才会出现这种错误
shentibeitaokong
2020-11-05 20:34:20 +08:00
我的这种情况 和 stackoverflow 上这位老哥的问题类似 https://stackoverflow.com/questions/63730523/google-chrome-returns-err-http2-server-refused-stream-for-ajax-call 有没有大佬能提点一下 万分感谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/721141

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX