首页 文章

是否应同时连接到新的HTTP 1.1服务器的HTTP连接会创建一个连接还是多个连接?

提问于
浏览
2

问题

如果从新鲜的同时向同一服务器发出2个HTTP请求,例如 GET /image1.png HTTP/1.1GET /image2.png HTTP/1.1 ,之前没有与服务器的连接 . 那么应该 Build 1个TCP连接还是2个?


信息

Persistent connections supported by default in HTTP 1.1 . HTTP 1.0使用 Connection: Keep-Alive .

通过阅读RFC似乎很清楚,如果上述请求是一个接一个地进行的,那么第二个请求应该重用连接 .

HTTP Pipelining正在同一连接上发送多个请求,而不是先等待响应 . 我不确定这适合答案的地方 .

1 回答

  • 2

    如果从新鲜的同时向同一服务器发出2个HTTP请求,例如GET /image1.png

    如果请求是由浏览器同时发出的(并且没有HTTP代理服务器),那么将与服务器 Build 两个连接(除非启用了http pipelining) . 根据维基百科关于流水线的文章,

    在所有主流浏览器中,只有基于Presto布局引擎的Opera具有默认启用的完全工作实现 . 在所有其他浏览器中,HTTP流水线操作已禁用或未实现 . 由于担心有关错误的代理和行头阻塞,Internet Explorer 8不会对请求进行管道传输 . Mozilla浏览器(如Mozilla Firefox,SeaMonkey和Camino)支持流水线操作,但默认情况下禁用 . 默认情况下禁用管道传输以避免服务器行为不当出现问题 . 启用流水线操作时,Mozilla浏览器会使用一些启发式方法,尤其是为较旧的IIS服务器关闭流水线操作 . Konqueror 2.0支持流水线操作,但默认情况下禁用 . Google Chrome支持在稳定版本中将HTTP流水线作为非默认选项(从版本18开始) . 目前还没有支持流水线HTTPS . [11]从版本26开始,已禁用在Chrome中启用HTTP流水线操作的标记 .

    所以,可能是两个连接 .

相关问题