http 客户端是否可以配置与 http 服务器建立持久或非持久连接?

http 客户端是否可以配置与 http 服务器建立持久或非持久连接?

我想了解,如果取决于客户端如何配置 http 连接,服务器可以以非持久方式或持久方式运行,因此实际上某些客户端可以以持久模式连接,而某些客户端可以以非持久模式连接。

任何示例代码,尤其是 Java 代码,都会有帮助。

答案1

这取决于协议版本:

HTTP/1.0

(对于我们当中的长者来说)。除非另有规定,否则连接将立即关闭。为了保持连接处于活动状态,客户端可以Connection: keep-alive向请求添加标头。如果服务器支持并同意,则连接保持活动状态。如果任何一方不再希望保持连接(例如,客户端不再添加所述标头,或添加Connection: close),则请求完成后连接将关闭。

HTTP/1.1

这里默认保持连接打开,除非另有明确声明(Connection: close)。但是,服务器可能会决定在某个不活动超时(例如 5 秒)后关闭连接。不过,你永远不能力量服务器保持连接,但每 4 秒发出一次虚拟请求可能工作 - 但这实际上应该是一个几乎不会对服务器造成任何负载的请求,并且作为服务器管理员,我甚至会被日志文件中的许多讨厌的行所困扰。

我不会深入研究 HTTP/2,因为多路复用和服务推送选项使情况变得有点复杂。

相关内容