HTTP代理使用的协议是否会减少客户端协商的连接数?

时间:2018-05-20 03:24:16

标签: performance http tcp http-proxy

当使用HTTP代理服务器时,与直接连接到各个http站点(没有代理)的客户端相比,客户端和代理之间协商的连接数是否减少了?

例如,当直接连接到两个不同的域时,显然必须至少建立两个连接。在代理的情况下,客户端是否通常使用单个连接到代理连接"连接"?

同样,是否存在连接到单个域但访问多个资源的客户端使用代理会减少连接数的情况?例如,即使最终目的地不支持,代理也能呈现HTTP / 1.1风格的持久连接吗?代理是否能够使用更长的持久连接超时期限?

1 个答案:

答案 0 :(得分:1)

  

对于代理服务器,客户端通常是否只使用单个连接代理来连接“连接”?

虽然可以使用与HTTP代理相同的连接来将HTTP请求包含到不同的目标,但大多数客户端都不会从我看到的那样做。此外,它只适用于HTTP而不是HTTPS,因为在后一种情况下,与目标的整个TLS连接通过代理进行隧道传输,并且此隧道连接的关闭也是与代理的基础TCP连接的关闭。而且,只有HTTP代理而不是SOCKS代理才能对多个目标发出HTTP请求,因为SOCKS本质上构建了一个到特定目标的隧道,并且该目标在连接开始时设置,永远不能更改。

尽管如此,虽然我没有看到它用于浏览器代理连接,但我已经看到使用修补过的鱿鱼(很久以前)来执行此操作以优化代理到代理连接。

  

例如,即使最终目的地不支持,代理也能呈现HTTP / 1.1风格的持久连接吗?

虽然这也是可能的,但也不常见。通常代理不会完全分离客户端和服务器,即服务器触发的服务器和代理之间的连接关闭通常也会导致代理和客户端之间的连接关闭。原因可能是它只适用于HTTP而不是HTTPS,并且它使得代理的实现更复杂,因为在请求之间重复请求服务器突然关闭持久连接的事情现在需要由代理处理而不是简单地转发关闭并让客户端处理它。