【发布时间】:2019-05-17 03:27:25
【问题描述】:
连接将在 Http/2 中保持活动多长时间? 我了解 Http/2 每个域使用一个连接并进行多路复用。但我没有得到任何关于连接将保持多长时间的信息。
【问题讨论】:
标签: http networking https keep-alive ttl
连接将在 Http/2 中保持活动多长时间? 我了解 Http/2 每个域使用一个连接并进行多路复用。但我没有得到任何关于连接将保持多长时间的信息。
【问题讨论】:
标签: http networking https keep-alive ttl
与 HTTP/1.1 一样,在 HTTP/2 中保持连接的时间取决于客户端和服务器的实现。 HTTP/2 specification 说
HTTP/2 连接是持久的。为了获得最佳性能,预计客户端不会关闭连接,直到确定不需要与服务器进行进一步通信(例如,当用户导航离开特定网页时)或直到服务器关闭连接。
[...]
鼓励服务器尽可能长时间地保持打开的连接,但在必要时允许终止空闲连接。当任一端点选择关闭传输层 TCP 连接时,终止端点应该首先发送一个 GOAWAY(第 6.8 节)帧,以便两个端点都可以可靠地确定先前发送的帧是否已被处理并优雅地完成或终止任何必要的剩余任务。
因此,两个端点都可以通过发送GOAWAY 帧来优雅地关闭连接。 Nginx 和 Apache 让您配置一个超时时间,然后关闭空闲的 HTTP/2 连接。 nginx 的默认值为 3 分钟,Apache 的默认值为 5 秒。
【讨论】: