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

时间:2017-04-18 21:25:51

标签: cors http2

index.html是从服务器https://foo.com加载的,它只支持http 1.1,但是如果有正确的CORS头,可以将XMLHttpRequest发送到支持http / 2的第二台服务器https://bar.com

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

2 个答案:

答案 0 :(得分:2)

是的,这是一个完全独立的连接,但我怀疑它是否重要,因为不确定你希望从哪些“功能”中受益?

HTTP / 2的几乎所有功能和优势都旨在提高与同一域的许多连接的性能:

  • 正确的Multiplexing允许您通过single connection while removing the head of line blocking seen under HTTP/1.1发出许多请求。
  • 确定优先级以确保有效使用多路连接。
  • 标头压缩允许在多个请求上发送类似的HTTP标头,而不会降低性能(例如,每次请求都会发送大量的Cookie)。
  • 二进制格式更多的是技术变革,使编写解析HTTP请求(例如Web服务器和Web浏览器)的软件更加健壮 - 尤其是在多路复用时。

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

只留下Server Push。这只能在响应原始请求时发送,因此在大多数情况下对XMLHttpRequests不太有利。另外there seems to be some confusion as to how to handle pushed XMLHttpRequests

答案 1 :(得分:0)

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

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

XMLHttpRequest也不例外:浏览器仍然发出HTTP请求(无论是CDN还是XMLHttpRequest),如果bar.com支持HTTP / 2,浏览器将会生成使用HTTP / 2进行呼叫。