【问题标题】:okhttp support for connection pooling in http2okhttp 支持 http2 中的连接池
【发布时间】:2020-06-23 20:01:07
【问题描述】:

okhttp 是否支持 http2 客户端的连接池? 官方文档https://square.github.io/okhttp/ 这么说 “连接池减少了请求延迟(如果 HTTP/2 不可用)”。

okhttp 有没有办法根据 rfc https://www.rfc-editor.org/rfc/rfc7540#section-5.1.2 配置连接上允许的最大并发流? okhttp http2 客户端发送的最大并发流的默认值是多少?当满足最大并发流阈值时接收器发送拒绝流错误时会发生什么?是重试还是请求失败?

【问题讨论】:

    标签: okhttp


    【解决方案1】:

    okhttp 有没有办法根据 rfc https://www.rfc-editor.org/rfc/rfc7540#section-5.1.2 配置连接上允许的最大并发流?

    目前没有。

    okhttp http2 客户端发送的最大并发流的默认值是多少?

    这是荣幸。

    当达到最大并发流阈值时接收器发送拒绝流错误会发生什么?是重试还是请求失败?

    OkHttp 会一直失败到应用程序的请求。不过你不应该期望看到这一点,因为 OkHttp 遵守最大并发流限制。

    请注意,连接创建是活泼的。这个限制可能只有在 OkHttp 创建多个流之后才知道。在这种情况下,服务器应该允许这些流。

    【讨论】:

    • 谢谢 jesse wilson,1) okhttp 是否支持 http2 客户端的连接池?官方文档 square.github.io/okhttp 说“连接池减少了请求延迟(如果 HTTP/2 不可用)”。 2)当你说“这很荣幸”时,你是什么意思?作为最大并发会话的设置框架的一部分,客户端发送给接收方的值是多少。 3)当你说okhttp尊重最大并发流时,你是说客户端知道服务器端的活动流并在达到阈值后阻止发送流?
    • 1.所有 HTTP 连接都是池化的,包括 HTTP/2 连接。 2. 执行默认最大值。 3. 是的。如果 HTTP/2 连接由于达到其限制而无法进行呼叫,则将建立新的 HTTP 连接。
    猜你喜欢
    • 2020-11-12
    • 2019-03-11
    • 2019-09-22
    • 2017-06-27
    • 2015-03-03
    • 2019-03-19
    • 2019-08-04
    • 2016-08-12
    • 2017-03-30
    相关资源
    最近更新 更多