http保持活动对tcp连接的影响是什么?

时间:2016-06-22 20:47:07

标签: http tcp keep-alive

在http persistent上有一个“keep alive”计时器。

当保持活动时间结束时,会发生什么? tcp连接会关闭吗?我不这么认为,因为现存的tcp连接仍然存在。

那么“保持活动的http计时器”的影响是什么?

如果我在端口80上打开http连接到url(TCP), 在tcp连接结束之前,服务器端口不会空闲。

那么,如果http保持活着结束呢?

我试着明白了。

如果我得到官方消息来源,我将很高兴。

谢谢!

2 个答案:

答案 0 :(得分:2)

  

在http persistent上有一个“keep alive”计时器。

正确。不要将它与TCP keepalive混淆,这是一个完全不同的东西(RFC 1122)。我在这里假设您正在根据您的文本谈论HTTP。

  

当保持活动时间结束时,发生了什么?

连接将由一个对等方关闭。

  

tcp连接会关闭吗?

正确。

  

我不这么认为,因为存在tcp连接时保持活着。

我不知道这意味着什么。

  

那么“保持活动的http计时器”的影响是什么?

当指定的不活动时间段到期时,它会关闭打开的HTTP连接。

  

如果我在端口80上打开http连接到url(TCP),则在tcp连接结束之前服务器的端口将不会空闲。

不正确的。您可以打开许多连接到同一个侦听端口。

  

那么,如果http保持活着结束呢?

连接已关闭。你已经问过了。

  

如果我得到官方消息来源,我会很高兴。

HTTP 1.1的官方来源是RFC 7230-5,RFC 2616的继承者。

答案 1 :(得分:1)

TCP级别keepalive在带外完成,因此没有与此关联的流数据。这意味着使用套接字的应用程序看不到TCP keepalive的影响,因此空闲连接仍将由http服务器或代理关闭。

此外,默认情况下,发送TCP Keepalive的间隔时间通常很长(小时)。您可以在keepalive套接字选项here on MSDN

中找到更多信息

HTTP不允许服务器尝试提示客户端执行某些操作,因此如果客户端没有使用连接,则唯一的选择是关闭它或将其保持打开状态。这通常是服务器或代理中的配置选项。