HTTP/2在CORS请求中工作吗?

问题描述:

index.html从服务器https://foo.com加载,该服务器仅支持http 1.1,但具有适当的CORS头部,XMLHttpRequest可发送到支持http/2的第二服务器https://bar.comHTTP/2在CORS请求中工作吗?

我的应用程序能够利用浏览器和服务器https://bar.com之间的http/2功能吗?

是的,您的应用程序将能够利用bar.com提供的HTTP/2功能。

这也是CDNs提供商对HTTP/2如此感兴趣的原因。

XMLHttpRequest无异:浏览器仍使一个HTTP请求(不管它是到CDN或经由XMLHttpRequest),并且如果bar.com支持HTTP/2中,浏览器将使用HTTP/2呼叫。

是的,这是一个完全独立的连接,但我怀疑它会影响你不知道什么“功能”,你希望从中受益?

几乎所有的功能和HTTP的优点/ 2,旨在提高到同域许多连接的性能:

  • 正确Multiplexing使您可以在single connection while removing the head of line blocking seen under HTTP/1.1许多请求。
  • 确定优先级确保多路复用连接有效使用。
  • 头压缩允许类似HTTP标头的多个请求上发送而没有性能损失(饼干例如大量被与每一个请求发送)。
  • 二进制格式更多的是使编写软件解析HTTP请求(例如网络服务器和Web浏览器)更健壮的技术变化 - 特别是在多路复用时相关。

因此,除非您的网站正在向同一主机发送大量XMLHttpRequests,否则这些功能并不会真正给您带来太多好处。 HTTP/2的开销与实现是相当新的,因此可能不是100%最优的,这通常意味着对于少量请求,HTTP/2实际上可能会变慢。

这只会离开服务器推送。这只能响应原始请求发送,所以在大多数情况下对XMLHttpRequests不太有利。另外there seems to be some confusion as to how to handle pushed XMLHttpRequests

+0

**再加上实现是相当新的,所以可能不是100%的最佳尚未HTTP/2的费用,往往意味着HTTP/2实际上可能请求少量慢。**你有什么具体的例子,这对我来说非常有趣......谢谢! –