问题标签 [nghttp2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2776 浏览

linux - 通过 nghttp2 使用带有 HTTP\2 支持的 cURL 连接到 Apple 的 APNS

我尝试按照本教程来编译支持 HTTP/2 的 cURL 。我正在使用Docker,我的应用程序基于使用 Debian 的官方 PHP Docker 映像,尽管我在Vagrant VM 中运行的 Ubuntu 机器上也遇到了同样的问题。

起初似乎没有问题。事实上,跑步curl --version显示了我所期望的一切:

另外,我可以很好地连接到https://nghttp2.org :

当尝试连接到 Apple 最近重新推出的现在在 HTTP/2 上运行的APNS Provider API时,问题就开始了。

我已经通过 Homebrew 在我的 Mac 上安装了 curl(使用--with-nghttp2),我可以获得以下(预期的)响应:

但是,如果我尝试从我的 Docker 映像中运行相同的命令,我会得到:

我不确定为什么这个问题似乎特定于 Apple 的服务,以及需要采取什么措施来纠正这种情况。

任何帮助将不胜感激!

0 投票
1 回答
4684 浏览

apache - apache mod_http2 先决条件失败

我正在尝试在 CentOS 7 上使用 mod_http2 RPM 构建 apache 2.4.18。但是,在构建时出现以下故障:

但是,我的 nghttp2 和 libnghttp2 版本都是 1.7.1:

在我的httpd.spec中,我添加了以下配置选项:

我的 libnghttp2 安装在 /usr/lib64 中:

中唯一的文件/usr/share/nghttp2fetch-ocsp-response.

希望我提供了足够的信息,但如果需要更多信息,请询问。有什么问题,我该如何解决?

0 投票
0 回答
165 浏览

apache - Safari/Firefox 或 Chrome 不会使用 http/2 但 CURL 很好

我使用 SLES 和 OS X 重复了以下操作。我编译了 apache 2.4.18、nghttp2-1.8.0 和 OpenSSL 1.0.2g,并使用了最近构建的 curl 版本,看起来一切正常。

上面的输出显示了连接升级到 http/2 和 Apache 访问日志报告:

证书链都是本地生成的。使用根证书、中间证书和服务器证书以及以下命令报告一切正常

但是我无法让我的任何浏览器 Safari/Firefox 或 Chrome 使用 http/2。

  • Firefox 45.01(带有 spdy 指示器扩展)
  • Safari 6.2.8 (8537.85.17.9.1)
  • 谷歌浏览器 49.0.2623.87(64 位)

该页面显示正常,但 Firefox 的 spdy 指示器扩展没有显示任何内容。访问记录所有报告 HTTP/1.1 连接。如何让 http2 正常工作?

0 投票
1 回答
1495 浏览

google-chrome - 使用服务器推送推送文件后,如何将文件保存在浏览器缓存中?

我有一个带有 http2 的 Apache,并且我已经将我想保存在浏览器缓存中的文件进行服务器推送,但它没有,我不知道为什么。

我已经使用 php 文件进行了推送,如下所示。

从我的角度来看,服务器推送正在工作,因为我可以在 access_log 中看到对服务器的请求,但我认为文件应该保存在浏览器缓存中,但它没有。

我尝试让服务器推送文件,然后请求该文件并从缓存中获取它(请参阅 Chrome 的网络控制台“从缓存”)。

谢谢

0 投票
1 回答
537 浏览

http2 - 为什么在发送 HEADERS 帧之前从 HTTP2 客户端发送 5 个 PRIORITY 帧?它们是成功的 HTTP2 连接所必需的吗?

我注意到一些 HTTP2 客户端(Firefox 和nghttp)在同意 http2 协议之后和发送 HEADERS 帧之前为流 3、5、7、9、11 发送 5 个 PRIORITY 帧。我很好奇为什么?我知道 PRIORITY 帧的含义,但我不明白发送它的意义,但 Firefox 和 nghttp 都这样做,所以肯定有一些原因。

最重要的是,根据日志,这些流(流 3、5、7、9、11)在 PRIORITY 帧之后不使用。

Firefox 的服务器输出信息如下所示。

但是 Chrome 不会发送它们,如下所示。所以他们不是成功连接所必需的吗?

0 投票
0 回答
826 浏览

c++ - 使用 C++ Libcurl HTTP2 的下行通道流 - Alexa API V2

我坚持创建下行通道流,该流旨在从客户端保持半关闭状态并从 AVS 长时间打开。

它从 ALEXA API 接收 JSON 响应而不发出请求,因为它一直处于半关闭状态。

目前我正在使用作为单向进程关闭的 libcurl 发出 GET 请求

我想知道如何使用 libcurl 将连接保持在半关闭状态,以便它在不发出请求的情况下给出响应。

我不希望任何代码只是一种这样做的方法。

0 投票
1 回答
1755 浏览

centos - centos6.5/6.8上安装nghttp2失败

我从 github 下载源代码:https ://github.com/nghttp2/nghttp2 。并安装步骤:

每一步都可以,但是我不能用。</p>

nghttp

-bash:nghttp:找不到命令

但是,我在Ubuntu 14.04上成功安装了 nghttp2 !

0 投票
1 回答
12799 浏览

google-chrome - 我们应该在 HTTP/2 中复用多少并发请求

长期以来,浏览器使用每个主机最多 6 个并发 HTTP 1.1 连接来从网页检索资产。(远远)超出这个黄金标准被认为是 DOS 并让你被禁止访问服务器。

现在有了 HTTP/2,我们可以在一个连接上多路复用多个 HTTP 请求。为了防止服务器过载,我们是否还应该对连接上多路复用的并发请求数量使用类似的限制?还是在单个连接上多路复用更多请求没有害处?

任何人都知道浏览器对 HTTP/2 服务器的每个主机和每个连接使用的限制是什么?

0 投票
0 回答
255 浏览

homebrew - 安装 nghttp2 时找不到 ZLIB

我想nghttp2为我的 mac os 安装,但是在我运行 command 之后brew install nghttp2,我面对这个输出:

正如在一些类似的回复中所说,我试过了xcode-select --installbrew upgrade但问题没有解决。

0 投票
3 回答
1042 浏览

apache - 无法向 Apache 服务器发出 http2 请求,尽管服务器在响应标头中发送“升级:h2”

我为 Apache Web 服务器启用了 mod_http2,并在 conf 中进行了必要的更改,仍然从浏览器向服务器发出的任何请求都遵循 http/1.1 协议

服务器发送一个 Upgrade:h2 头字段,但浏览器仍然继续发出 http/1.1 请求。

HTTP/1.1 请求 升级:响应标头中的 h2

如何从 Mozilla/Chrome 发出 h2 请求?我正在使用 Mozilla Firefox 48.0