2009-11-08 91 views
3

我想更好地了解.net http连接重用的工作原理。http连接重用

  1. 当我使用的HttpWebRequest从相同的AppDomain送东西给一些服务器的两倍,是连接(可选)重用?因此,即使在我的应用程序中它们是不同的逻辑请求,服务器也会看到来自同一连接的两个请求。

  2. 如果是,该行为可以关闭吗?

  3. 那么使用authentication/ssl的连接又是如何重用?如果我为每个请求提供不同的凭证/策略,这可能是一个安全漏洞。

回答

3

连接重用使用HTTP Keep-alive,这是HTTP/1.1的一项功能。通过使用HTTP Keep-alive,一个TCP连接可用于顺序处理多个HTTP请求,因此可节省时间为每个请求打开一个新的TCP连接。每个HTTP请求本身又是独立的,因此认证和类似将不会被自动重新使用。

2

因为它说,在http://tools.ietf.org/html/rfc2616#section-8.1 的RFC的HTTP标头: 连接:保持活动

通过HTTP 1.0使用的东西,因为连接是不是永久性的。

从http 1.1开始,所有的连接默认是持久的,这意味着这个头不再被使用。