在http persistent上有一个“keep alive”计时器。
当保持活动时间结束时,会发生什么? tcp连接会关闭吗?我不这么认为,因为现存的tcp连接仍然存在。
那么“保持活动的http计时器”的影响是什么?
如果我在端口80上打开http连接到url(TCP), 在tcp连接结束之前,服务器端口不会空闲。
那么,如果http保持活着结束呢?
我试着明白了。
如果我得到官方消息来源,我将很高兴。谢谢!
答案 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不允许服务器尝试提示客户端执行某些操作,因此如果客户端没有使用连接,则唯一的选择是关闭它或将其保持打开状态。这通常是服务器或代理中的配置选项。