我想更好地了解.Net http连接重用是如何工作的。
当我使用HttpWebRequest从同一appdomain向某个服务器发送两次内容时,连接(可选)是否重用?因此服务器会将这两个请求视为来自同一连接,即使在我的应用程序中它们是不同的逻辑请求。
如果是,可以关闭此行为吗?
使用authentication / ssl的连接怎么样?它们也可以重用吗?如果我为每个请求提供不同的凭据/策略,这可能是一个安全漏洞。
答案 0 :(得分:3)
连接重用是使用HTTP Keep-alive,这是HTTP / 1.1的一个特性。通过使用HTTP Keep-alive,一个TCP连接用于顺序处理多个HTTP请求,因此可以节省时间为每个请求打开一个新的TCP连接。然后,每个HTTP请求本身都是独立的,因此不会自动重新使用身份验证等。
答案 1 :(得分:2)
正如它在http://tools.ietf.org/html/rfc2616#section-8.1中所说的RFC HTTP标头: 连接:Keep-Alive
是Http 1.0使用的东西,因为连接不是持久性的。
从http 1.1开始,默认情况下所有连接都是持久的,这意味着不再使用此标头。