2

当我偶然发现 HTTP/2 时,我正在尝试找出提高 Web 应用程序性能的方法。在阅读有关它时,我知道它具有很多提高网站性能的功能。

谈到它的实现部分,我发现您只需将浏览器升级到最新版本即可使用。由于我的浏览器已经是最新版本,我看到我的所有资源——CSS、JS 和 HTML 文件都使用 HTTP/2 提供。但是,我使用 angularJS 进行的数据查询仍然使用 HTTP/1.1。这是我的问题。

  1. 如何让我的数据查询使用 HTTP/2 协议?我是否必须在标题中添加额外的参数?

  2. HTTP/2 会放开浏览器每个域的 6 个并发请求限制吗?我可以发出超过 6 个并行 ajax 请求吗?

我在客户端使用 angularJS。我的请求通过 Cloudflare 到达 Play Framework 提供的服务器。

4

1 回答 1

2

如果客户端(浏览器)和网络服务器都支持 HTTP/2,那么它将被使用。您的前端 JavaScript 不需要任何区别 - 如果可以,浏览器会自动使用它。

所以我猜你的“数据”查询与你的常规查询在不同的域上,并且该域不支持 HTTP/2。

是的,HTTP/2 显着增加了并行请求的数量。100 个飞行中的“流”是一种常见的服务器设置。然而,这确实带来了所有有趣的挑战:例如,Chrome 发现当同时发生如此多的请求时它的处理效率低下,并且有一段时间一次限制为 6 个 HTTP/2 请求。此外,一些较低优先级的请求(例如折叠图像下方)可以使用更好地用于较高优先级请求(例如折叠图像上方)的带宽。HTTP/2 具有依赖项和优先级的概念,但并非每个浏览器都使用它们。

一旦你进入它,这是一个迷人的话题。

于 2018-05-07T12:44:33.610 回答