哪个Web应用程序框架强制每个客户端/服务器的HTTP的TCP连接限制为2?

时间:2010-04-08 08:59:16

标签: http web-frameworks

HTTP 1.1 RFC限制客户端在任何客户端和服务器之间使用两个以上的TCP连接。我想知道哪个Web Application Frameworks强制执行此限制。

此致

1 个答案:

答案 0 :(得分:2)

HTTP 1.1实现不是Web应用程序框架的功能,它是客户端或服务器HTTP代理的功能。换句话说,它由客户端的Safari,Chrome,Firefox和Internet Explorer以及服务器端的Apache或IIS [*]实现。当然,还有更多的HTTP代理也在实现HTTP 1.1;我只是列出最受欢迎的(如“我使用”:-))。

据我所知,您链接到的维基百科文章中列出的大多数Web应用程序框架应该至少在Apache和/或IIS之上运行,因此他们应该能够从HTTP 1.1中受益。但是,如果用户使用的浏览器不支持HTTP 1.1,则Apache和IIS的默认配置将回退到HTTP 1.0,并且在最常见的情况下,这将对您选择的Web应用程序框架透明地发生。 / p>

更新:您的问题应该转发(根据您的评论)“哪个Web应用程序框架仅支持HTTP 1.1作为传输协议”。

没有主要的Web服务框架仅通过HTTP 1.1强制执行端点配置或客户端调用。所有这些都允许应用程序代码(服务或客户端)选择传输。这有两个主要原因:

  1. 协议选择取决于实际服务的部署配置,因此它与所使用的框架正交,很少由Web服务开发人员制作
  2. 通过框架将传输协议选择限制为HTTP 1.1意味着增加采用障碍,这是框架作者不希望的。
  3. 可能强制执行特定HTTP版本的唯一框架将是自己的Web服务器实现或主要Web服务器(通常是Apache)的预配置部署。但是,我不知道任何仅强制执行HTTP 1.1的内容;如果有的话,他们只会强制执行HTTP 1.0。

    一般来说,还有一个非常实际的原因可以阻止HTTP 1.1对Web服务的执行 - 大多数部署都可以在未知数量的中间网关(防火墙,缓存服务器,负载平衡器等)上工作,这些中间网关可能会也可能不会支持HTTP 1.1,因此Web服务客户端和Web服务端点之间的协议协商失败,而没有对HTTP 1.0的后备支持。

    [*]从技术上讲,它是由Windows平台上的WinHTTP和WinInet实现的,只是被应用程序重用。而且我确信有一个公共的库也可以在Linux上重用(可能叫做libhttp.so或类似的东西,但不要引用我: - ))。