我已经安装了SPDY Indicator chrome扩展.它正在检测某些站点启用SPDY,而某些站点启用HTTP/2.
哪些是当前支持HTTP/2的Web服务器?我知道nginx支持SPDY,但是它支持HTTP/2吗?如果是,我该如何启用它?
感谢GolezTrol. 答案是不. 是截至2015年9月
以下列表已过期,可能不值得维护.
在Windows 10上进行测试时,我们看到许多浏览器不兼容,这是我以前在Windows版本中没有见到的.有些浏览器可以使用,但其他浏览器会报告ERR_SPDY_PROTOCOL_ERROR.我对这个问题的快速搜索表明我并不孤单.
我的应用程序使用WWSAPI和HTTP.SYS与HTTPS(TLS).有谁知道如何在Windows 10上的WWSAPI(使用HTTP.SYS)中禁用SPDY/HTTP/2?
我还想获得HTTP.SYS的最新Windows 10注册表设置列表.
请参阅下面的我对此的回答.希望这也有助于其他人.
标记
我正在测试一个支持HTTP/2的站点,就像这样,我尝试使用okhttp发送请求:
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.url("https://www.google.it")
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Request request, IOException e) {
e.printStackTrace();
}
@Override
public void onResponse(Response response) throws IOException {
Log.d("TestHttp", "OkHttp-Selected-Protocol: " + response.header("OkHttp-Selected-Protocol"));
Log.d("TestHttp", "Response code is " + response.code());
}
});
Run Code Online (Sandbox Code Playgroud)
在日志中我得到了这样的东西:
OkHttp-Selected-Protocol: http/1.1
Run Code Online (Sandbox Code Playgroud)
okhttpClient选择使用http/1.1,如何强制它使用HTTP/2?
使用websocket时,我们需要一个专用的双向通信连接.如果我们使用http/2,我们有服务器维护的第二个连接.
在这种情况下,使用websocket似乎会引入不必要的开销,因为使用SSE和常规http请求,我们可以通过单个HTTP/2连接获得双向通信的优势.
你怎么看?
我想知道这个(httptest)包是否可用于测试HTTP/2特定功能.
谁能指点我一些例子呢?
我知道工具h2i,但它是一个交互式工具.
我正在寻找可编程的东西.
编辑:
我真正想要的是一个工具,例如我可以启动服务器推送并在客户端测试它.
因此,使用此包,如何访问默认使用的基础HTTP/2内容?
编辑2:
在nghttp2源代码中找到一些示例:https:
//github.com/tatsuhiro-t/nghttp2/tree/master/integration-tests
编辑3: 对我来说,看起来net net/http2并不是任何人都可以直接使用的.我会试验这个.
HTTP/2如何影响代理服务器的实现?特别是,例如,当客户端向仅支持HTTP/1.x的内容服务器发送HTTP/2请求时,代理服务器是否应该在将客户端请求指向客户端请求之前将HTTP/2请求转换为HTTP/1.x请求内容服务器?并且在收到内容服务器的响应后,代理服务器是否应该将响应转换为HTTP/2格式,然后再将其发送回客户端?
是否有命令或服务告诉我我的网站是通过HTTP还是HTTP/2提供服务.
我找到了这个工具:HTTP/2测试| 一个简单的HTTP/2.0测试工具,但它只告诉我我的网站是否支持HTTP/2,而不是它是否已经使用HTTP/2.
这些也是Chrome扩展程序:HTTP/2和SPDY指示器,它告诉我已经在我的网站上启用了HTTP/2,但据我所知,我的Apache版本甚至不支持它.
有没有办法确定?谢谢!
我在Windows 7上使用nginx版本1.10.3.我想启用http2.我在配置文件中添加了以下内容:
server {
listen 443 http2 ssl proxy_protocol;
}
Run Code Online (Sandbox Code Playgroud)
当我启动nginx服务器时,我收到以下错误:
2017/02/15 14:34:33 [emerg] 8948#6892: the "http2" parameter requires
ngx_http_v2_module in C:\Develop\Application\nginx-1.10.3/conf/nginx.conf:64
Run Code Online (Sandbox Code Playgroud)
行号64与上面指定的行相同.
如何ngx_http_v2_module在Windows上安装?
HTTP2如何解决行头阻塞(HOL)问题?
这个问题在http1.1中非常频繁,但我听说HTTP2已经解决了这个问题.有人可以解释HTTP2究竟是如何解决这个问题的?