HTTP 1.1 RFC限制客户端在任何客户端和服务器之间使用两个以上的TCP连接。我想知道哪个Web Application Frameworks强制执行此限制。
此致
答案 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强制执行端点配置或客户端调用。所有这些都允许应用程序代码(服务或客户端)选择传输。这有两个主要原因:
可能强制执行特定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或类似的东西,但不要引用我: - ))。