问题标签 [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.
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 的服务,以及需要采取什么措施来纠正这种情况。
任何帮助将不胜感激!
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/nghttp2
是fetch-ocsp-response
.
希望我提供了足够的信息,但如果需要更多信息,请询问。有什么问题,我该如何解决?
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 正常工作?
google-chrome - 使用服务器推送推送文件后,如何将文件保存在浏览器缓存中?
我有一个带有 http2 的 Apache,并且我已经将我想保存在浏览器缓存中的文件进行服务器推送,但它没有,我不知道为什么。
我已经使用 php 文件进行了推送,如下所示。
从我的角度来看,服务器推送正在工作,因为我可以在 access_log 中看到对服务器的请求,但我认为文件应该保存在浏览器缓存中,但它没有。
我尝试让服务器推送文件,然后请求该文件并从缓存中获取它(请参阅 Chrome 的网络控制台“从缓存”)。
谢谢
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 不会发送它们,如下所示。所以他们不是成功连接所必需的吗?
c++ - 使用 C++ Libcurl HTTP2 的下行通道流 - Alexa API V2
我坚持创建下行通道流,该流旨在从客户端保持半关闭状态并从 AVS 长时间打开。
它从 ALEXA API 接收 JSON 响应而不发出请求,因为它一直处于半关闭状态。
目前我正在使用作为单向进程关闭的 libcurl 发出 GET 请求
我想知道如何使用 libcurl 将连接保持在半关闭状态,以便它在不发出请求的情况下给出响应。
我不希望任何代码只是一种这样做的方法。
centos - centos6.5/6.8上安装nghttp2失败
我从 github 下载源代码:https ://github.com/nghttp2/nghttp2 。并安装步骤:
每一步都可以,但是我不能用。</p>
nghttp
-bash:nghttp:找不到命令
但是,我在Ubuntu 14.04上成功安装了 nghttp2 !
google-chrome - 我们应该在 HTTP/2 中复用多少并发请求
长期以来,浏览器使用每个主机最多 6 个并发 HTTP 1.1 连接来从网页检索资产。(远远)超出这个黄金标准被认为是 DOS 并让你被禁止访问服务器。
现在有了 HTTP/2,我们可以在一个连接上多路复用多个 HTTP 请求。为了防止服务器过载,我们是否还应该对连接上多路复用的并发请求数量使用类似的限制?还是在单个连接上多路复用更多请求没有害处?
任何人都知道浏览器对 HTTP/2 服务器的每个主机和每个连接使用的限制是什么?
homebrew - 安装 nghttp2 时找不到 ZLIB
我想nghttp2
为我的 mac os 安装,但是在我运行 command 之后brew install nghttp2
,我面对这个输出:
正如在一些类似的回复中所说,我试过了xcode-select --install
,brew upgrade
但问题没有解决。