发现一个神奇的问题,一次性发送 200 个 http2 请求,如果该请求头( request headers )上有自定义的请求头,其一定会出现部分请求失败,报错net::ERR_HTTP2_SERVER_REFUSED_STREAM
,但是如果该请求的请求头是干净的(也就是没有自定义的请求头,其就不会有问题)。而且将这些 h2 的请求转成 http1.1 时,该批量请求无论请求头如何都不会有问题!就知道这方面的大佬回答一下吗?或者给点思路!跪谢
1
muzuiget 2020-11-03 08:54:03 +08:00
没看懂你怎么一次性发送 200 个请求,一个 TCP 链接堆 200 个 HTTP 请求,还是 200 个 TCP 链接?这种情况就全看服务端实现限制。
|
2
leopod1995 2020-11-03 11:36:48 +08:00 1
https://tools.ietf.org/html/rfc7540#section-5.1.2
并发超过了参数 SETTINGS_MAX_CONCURRENT_STREAMS 的值,有些 stream 就被拒绝 |
3
shentibeitaokong OP @muzuiget 哦哦 我表述有误,不好意思,就是长度 200 的数组中循环去发送请求
|
4
shentibeitaokong OP @leopod1995 但是我如果没有自定义请求头,其不会报错 stream 拒绝,只有自定义请求头的情况下才会出现这种错误
|
5
shentibeitaokong OP 我的这种情况 和 stackoverflow 上这位老哥的问题类似 https://stackoverflow.com/questions/63730523/google-chrome-returns-err-http2-server-refused-stream-for-ajax-call 有没有大佬能提点一下 万分感谢
|