V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a JavaScript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
JavaScript 权威指南第 5 版
Closure: The Definitive Guide
shentibeitaokong
V2EX  ›  JavaScript

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

  •  
  •   shentibeitaokong · 2020-11-02 20:56:24 +08:00 · 1813 次点击
    这是一个创建于 1509 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    5 条回复    2020-11-05 20:34:20 +08:00
    muzuiget
        1
    muzuiget  
       2020-11-03 08:54:03 +08:00
    没看懂你怎么一次性发送 200 个请求,一个 TCP 链接堆 200 个 HTTP 请求,还是 200 个 TCP 链接?这种情况就全看服务端实现限制。
    leopod1995
        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 就被拒绝
    shentibeitaokong
        3
    shentibeitaokong  
    OP
       2020-11-04 11:33:57 +08:00
    @muzuiget 哦哦 我表述有误,不好意思,就是长度 200 的数组中循环去发送请求
    shentibeitaokong
        4
    shentibeitaokong  
    OP
       2020-11-04 11:34:58 +08:00
    @leopod1995 但是我如果没有自定义请求头,其不会报错 stream 拒绝,只有自定义请求头的情况下才会出现这种错误
    shentibeitaokong
        5
    shentibeitaokong  
    OP
       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 有没有大佬能提点一下 万分感谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2622 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:04 · PVG 20:04 · LAX 04:04 · JFK 07:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.