【问题标题】:http connection reusehttp连接复用
【发布时间】:2009-11-08 18:23:18
【问题描述】:

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

  1. 当我使用 HttpWebRequest 从同一个应用程序域向某个服务器发送两次内容时,连接(可选)是否被重用?因此,即使在我的应用程序中它们是不同的逻辑请求,服务器也会将这两个请求视为来自同一个连接。

  2. 如果可以,是否可以关闭此行为?

  3. 使用身份验证/ssl 的连接怎么样?它们是否也被重用了?如果我为每个请求提供不同的凭据/策略,这可能是一个安全漏洞。

【问题讨论】:

    标签: .net http connection system.net


    【解决方案1】:

    连接重用是使用 HTTP Keep-alive,这是 HTTP/1.1 的一个特性。通过使用 HTTP Keep-alive,一个 TCP 连接用于顺序处理多个 HTTP 请求,因此可以节省为每个请求打开新 TCP 连接的时间。然后,每个 HTTP 请求本身都是独立的,因此不会自动重复使用身份验证和类似请求。

    【讨论】:

      【解决方案2】:

      正如 https://www.rfc-editor.org/rfc/rfc2616#section-8.1 中所说的 RFC HTTP 标头: 连接:保持活动状态

      是 Http 1.0 使用的东西,因为连接不是持久的。

      从 http 1.1 开始,默认情况下所有连接都是持久的,这意味着不再使用此标头。

      【讨论】:

        猜你喜欢
        • 2013-09-06
        • 2012-07-28
        • 2013-04-22
        • 1970-01-01
        • 2010-10-01
        • 2011-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多