【发布时间】:2011-11-22 03:43:41
【问题描述】:
我读到 Keep-Alives 旨在提高性能 - 因此无需重新创建连接,只需重用现有连接即可。如果出现流量高峰,是否会创建新连接?
另外,如果我在高流量环境中不开启 Keep-Alive,它最终会耗尽客户端的连接/套接字端口吗?因为必须为每个 http/web 请求创建一个新连接。
【问题讨论】:
标签: http iis connection keep-alive
我读到 Keep-Alives 旨在提高性能 - 因此无需重新创建连接,只需重用现有连接即可。如果出现流量高峰,是否会创建新连接?
另外,如果我在高流量环境中不开启 Keep-Alive,它最终会耗尽客户端的连接/套接字端口吗?因为必须为每个 http/web 请求创建一个新连接。
【问题讨论】:
标签: http iis connection keep-alive
HTTP 是一种无状态协议。
在 HTTP 1.0 中,每个请求都意味着打开一个新的 TCP 连接。
这导致了性能问题(例如,必须为每个 GET 或 POST 重新进行 3 次握手),因此添加了 Keep-Alive 标头以维护跨请求的连接,并且在 HTTP1.1 中默认为持久连接。
这意味着连接可以跨请求重用。
我对 IIS 不是很熟悉,但是如果有配置在每次 HTTP 响应后关闭连接,就会对性能产生影响。
关于客户端的套接字/端口用完,如果客户端触发 大量 请求并且必须为每个 HTTP 请求打开一个新的 TCP 连接,则可能会发生这种情况。
一段时间后端口将被耗尽
【讨论】: