如何使用持久连接发出http2请求?(任何语言)

Tom*_*Tom 1 http2

如何使用 http2 和持久连接连接到https://api.push.apple.com ?

持久连接是为了避免快速连接和断开:

APNs 将快速连接和断开视为拒绝服务攻击

https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/APNsProviderAPI.html

使用https://nghttp2.org用 c 编写客户端是唯一的解决方案吗?

(如果这个问题应该在另一个 StackExchange 网站上问,请告诉我)

sbo*_*det 5

非持久连接已成为过去。它们在 HTTP/1.0 中使用,但 HTTP/1.1 已经转移到默认情况下持久连接的模型,而 HTTP/2(也是多路复用的)继续使用默认情况下持久连接的模型。

与您用于开发应用程序的语言无关,默认情况下,任何兼容 HTTP/2 的客户端都将使用持久连接。

您只需要以一种在发出每个请求后不显式关闭连接的方式使用 HTTP/2 客户端库即可。通常,这些库使用连接池来保持连接打开,通常直到触发空闲超时为止。

当您的应用程序发出 HTTP 请求时,库将选择一个打开的连接并发送请求。当响应到达时,库不会关闭连接,而是将其放回池中以供下次使用。

只需研究您想要使用的库如何允许您在不关闭连接的情况下发出多个请求。