问题标签 [http2]

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 投票
1 回答
1449 浏览

google-app-engine - 是否可以在 AppEngine 托管 VM 中运行 gRPC 或 HTTP/2 应用程序?

我正在尝试构建 gRPC 后端并尝试将其部署在 AppEngine 托管 VM 上。是否支持 HTTP/2?如果没有,我可以简单地将它暴露在一个单独的端口上并禁用运行状况检查,还是应该将它部署在计算引擎/容器引擎上。

0 投票
2 回答
4763 浏览

ios - iOS 9 上的 NSURLConnection 不使用 HTTP/2 协议

我在 Jetty 9.3 服务器上配置了 HTTP/2,它具有有效的证书,并且 SSLLabs.com 为其提供了 A 级安全配置。

使用 Chrome 浏览https://example.com会加载正确的响应,它还报告使用了“h2”(HTTP/2") 协议。

但是,当尝试使用 iOS 9 访问相同的 URL 时NSURLConnection,我可以在请求日志中看到它使用的是 HTTP 1.1。如果我在服务器上禁用 HTTP 1.1,请求将在 iOS 9 上失败(但在 Chrome 上仍然成功)。

NSURLConnection 代码 -

服务器的 ALPN 调试输出 -

在 WWDC 2015 中声明 iOS 9 中的 NSURLRequest 支持 HTTP/2,但客户端应用程序声称支持spdy/3.1, spdy/3, http/1.1, 不支持http/2. 没有NSAppTransportSecurity设置例外。

我尝试在运行应用程序的同一个 iPhone 模拟器上使用 Safari 连接到服务器,这次它工作并使用了 HTTP/2,这是 ALPN 调试输出 -

任何想法为什么它不在应用程序内使用 HTTP/2?

0 投票
3 回答
2590 浏览

curl - 如何从代码中禁用服务器密钥交换?

我在 Ubuntu 15.04 上从nghttp2运行 HTTP2 服务器示例 (libevent-server.c) 。我想使用 Wireshark 嗅探客户端-服务器之间的 HTTP2 数据包。

我没有使用任何网络浏览器作为客户端,所以这里解释的如何在 Wireshark 中读取 HTTP2 消息的提示不适用于我的项目。我使用 libcurl。

由于 HTTP2 数据包是 TLS 内部的应用层,Wireshark 必须知道如何解密它;因此,我按照这里的指南为 Wireshark 提供了密钥。但是该指南警告说,“如果服务器发送 ServerKeyExchange 消息,您将无法解密数据。” 不幸的是,我的 Wireshark 显示服务器密钥交换是由服务器发送的。

以下是 libevent-server.c 代码片段:

OPENSSL_config(NULL)更改为后我重新编译了代码,OPENSSL_no_config()但仍然发送了服务器密钥交换。

如何禁用服务器密钥交换?

0 投票
2 回答
1180 浏览

c# - .NET 4.6 HttpResponse.PushPromise 方法来管理 http/2 PUSH_PROMISE 标头

我对PUSH PROMISE http/2标头处理有点困惑.NET4.6

当我查看 HttpResponse.PushPromise时,有两个重载:

一种接受资源路径的方法 public void PushPromise(string path)-假设然后读取资源并将二进制文件发送给客户端。

第二个 public void PushPromise(string path, string method, NameValueCollection headers)接受sting method并且NameValueCollection headers我无法理解。

为什么我要传递方法(假设像 GET、POST 等这样的 HttpMethod)和标题内的PUSH PROMISE标题集合?

0 投票
1 回答
999 浏览

visual-studio - 如何让 VS2015 使用 HTTP/2?

http/2我尝试在 Web 项目文件 ( ) 中寻找启用选项.csproj,也在HttpRequest没有运气的对象上。这是一个设置web.config吗?

如何在 Visual Studio 中启用/禁用 HTTP/2?

0 投票
2 回答
10240 浏览

ios - 对 iOS 8 的 HTTP/2 支持

我尝试了 Xcode 7 Beta + NSURLSession,它已经支持 HTTP/2,而且效果非常好。

现在我想知道,当我发布使用 iOS 9 SDK 构建但支持 iOS 8 的应用程序时 - iOS 8 用户是否能够使用 HTTP2 ?或者它只适用于 iOS 9?

0 投票
1 回答
733 浏览

wildfly - Wildfly9 中的 HTTP2/SPDY 配置

我正在尝试在 wildlfy 9 中配置 HTTP2/SPDY。如何使用 wildfly 9 配置/测试相同的内容。

我已经使用 JSF 2.0 开发了登录页面。使用这个我想检查这个功能。

0 投票
0 回答
21 浏览

web - HTTP/2 就在这里。我们应该做些什么来调整我们的网站和 web 应用程序的完整列表?

HTTP/2 就在这里。浏览器已经采用了它,主要的网络服务器应该在 2015 年都支持它。

从前端和后端的角度来看,我们应该做什么(或停止做什么)来调整我们的网站和 web 应用程序的完整列表是什么?

0 投票
1 回答
697 浏览

android - HTTP/2 就在这里。原生 Android 应用程序如何利用它?

浏览器已经采用了 HTTP/2,主要的 Web 服务器应该在 2015 年都支持它。如果客户端浏览器需要适应 HTTP/2 的优势,客户端原生移动应用程序也应该如此。

原生 Android 应用程序如何利用 HTTP/2 更好地与其服务器通信,从前端的角度来看,我们应该做什么(或停止做)来适应我们的原生应用程序?

0 投票
1 回答
2320 浏览

java - Embedded Jetty HTTP/2 不适用于 Firefox/Chrome,但在 Safari 上似乎没问题

我正在嵌入式 Jetty (9.3.0.v20150612) 中实现一个 servlet,我想使用 HTTP/2。

我为协议协商启用 ALPN 以选择 HTTP1.1 或 HTTP2。当我从 Safari 8(仅支持 HTTP1.1)或 Safari 9(同时支持 HTTP1.1 和 HTTP2)向我的 servlet 发送 HTTPs 请求时,我从我的 servlet 中得到答案。当我从 Firefox 39 执行相同的请求时,它不起作用,我只得到 NS_ERROR_ABORT。我对 Chrome 也有同样的问题。

我有两个问题:

  1. 为什么我没有从 Chrome 和 Firefox 得到答案
  2. 我如何知道 Safari 9 是否使用了 HTTP/2 而不是 HTTP1.1?(我的 IOS9 应用程序也可以正常连接)

下面是执行 Jetty 初始化的代码

当我启动服务器时,我还提供了 Java 选项 -Xbootclasspath/p:$installDirectory/lib/alpn-boot-8.1.3.v20150130.jar

有什么错误或遗漏吗?谢谢你的帮助,

问候,