我读到Keep-Alives是为了提高性能 - 因此不需要重新创建任何连接,只需重用现有连接即可。如果有流量高峰,会创建新连接吗?
此外,如果我没有打开Keep-Alive并且在高流量环境中,它最终会在客户端耗尽连接/套接字端口吗?因为必须为每个http / web请求创建一个新连接。
答案 0 :(得分:4)
HTTP是无状态协议
在HTTP 1.0中,每个请求都意味着打开一个新的TCP连接
这导致性能问题(例如,必须为每个GET或POST重新执行3次握手),因此添加了Keep-Alive
标头以维护跨请求的连接,而在HTTP1.1中,默认是持久连接。登记/>
这意味着连接可以跨请求重复使用
我对IIS并不熟悉,但是如果在每次HTTP响应后都有一个配置来关闭连接,它将对性能产生影响。
关于客户端的套接字/端口耗尽,如果客户端发出巨大的数量的请求,并且每个HTTP请求必须打开一个新的TCP连接,则可能会发生这种情况。
一段时间后,端口将耗尽