2 回答

TA贡献1820条经验 获得超9个赞
curl -v --http2 localhost:8080
应用 UpgradeProtocol 并重新启动 Tomcat 服务器后,您可以使用它来检查操作。

TA贡献1828条经验 获得超13个赞
正如HTTP 连接器 howto所述:
HTTP/2 支持 TLS (h2)、通过 HTTP 升级 (h2c) 和直接 HTTP/2 (h2c) 连接的非 TLS。要为 HTTP 连接器启用 HTTP/2 支持,必须将以下UpgradeProtocol元素嵌套在具有className属性 的连接器中。
org.apache.coyote.http2.Http2Protocol
这表明 TLS 不是必需的。问题仍然是您的浏览器是否支持h2c
升级。
使用 Firefox,按 (F12) 打开开发者工具,导航到Networkanalysis。在那里,您会看到一个表格,其中显示了每个请求的多个属性。如果不存在,请添加Protocol列,该列告诉您每个请求是否使用 HTTP/1、h2c 或任何其他协议。Chrome 也以类似的方式提供协议信息:
只需右键单击开发人员工具Netowrk部分中的列,即可获得所有可用列的概览:
客户端使用的调试协议的另一种替代方法是访问日志记录。只需使用以下内容context.xhtml在默认ROOTwebapp 中创建一个\apache-tomcat\webapps\ROOT\META-INF\:
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Valve className="org.apache.catalina.valves.AccessLogValve"/>
</Context>
重新启动 Tomcat 并执行一些请求后,您会发现一个\apache-tomcat\logs\localhost_access_log.2019-03-12.txt确切说明了每个请求所使用的协议:
... - - [12/Mar/2019...] "GET / HTTP/1.1" 200 11488
... - - [12/Mar/2019...] "GET / HTTP/1.1" 200 11488
... - - [12/Mar/2019...] "GET / HTTP/2.0" 200 11468
就我而言,第一个请求都是使用 Chrome 和 Firefox 完成的,第三个请求是使用curl -v --http2 localhost:8080您在其他答案中编写的命令完成的。
添加回答
举报