java.net.HttpClient 上有连接池的处理吗?

Fer*_*ski 6 java api connection-pooling java-http-client

我想使用 Java 11 HttpClient 并使用 HTTP 1.1 的 Keep-Alive 参数在同一地址上发送多个请求。我知道 Apache HTTP 客户端有类似的功能,但是 Java API 客户端有类似的功能吗?

dan*_*iel 3

是 - 默认情况下,HTTP/1.1 连接保持活动状态,除非超出池的最大大小,在这种情况下,池中最旧的空闲连接(最接近其到期日期的连接)将被关闭,以便为新连接腾出空间。新连接。但是,如果同时发出请求,将打开与同一主机的多个连接。

  • 感谢你的回答。如果您可以包含有关这些功能的(官方)文档的链接,它将提高其质量并帮助其他人。它还可能有助于发现它是否/如何可配置,并了解其他优化概念。 (2认同)
  • 嗨费迪南德:这是一个实现细节 - 所以没有“官方”文档。事实上,实际上不存在“连接池”这样的东西。HttpClient 同时支持 HTTP/1.1 和 HTTP/2,因此它有两个池 - 由于每个协议的具体情况,它们的处理方式有所不同。我上面的回答仅涉及 HTTP/1.1 连接池。默认情况下,它是无界的,并且该池中的连接将保持活动状态 1200 秒,除非被服务器端关闭。 (2认同)