springboot中使用undertow2启用Http2

转载自:https://segmentfault.com/a/1190000013644784

maven

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-core</artifactId>
    <version>2.0.29.Final</version>
</dependency>
<dependency>
    <groupId>io.undertow</groupId>
    <artifactId>undertow-servlet</artifactId>
    <version>2.0.29.Final</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
    <exclusions>   
</dependency>

配置文件(必须使用tls证书,这是http2的硬性要求)

application.properties(我不喜欢YAML格式,编辑容易出错)

server.http2.enabled=true
server.undertow.worker-threads=20
server.undertow.buffer-size=512
server.undertow.io-threads=2

#tls证书配置
server.ssl.key-store=classpath:tomcat.key
server.ssl.key-store-type=JKS
server.ssl.key-alias=tomcat
server.ssl.key-store-password=xxxx #密码

配置成功以后控制台,会显示以下内容

2020-02-29 20:18:22.682  INFO 11448 --- [           main] io.undertow                              : starting server: Undertow - 2.0.29.Final
2020-02-29 20:18:22.690  INFO 11448 --- [           main] org.xnio                                 : XNIO version 3.3.8.Final
2020-02-29 20:18:22.702  INFO 11448 --- [           main] org.xnio.nio                             : XNIO NIO Implementation Version 3.3.8.Final
2020-02-29 20:18:22.769  INFO 11448 --- [           main] o.s.b.w.e.u.UndertowServletWebServer     : Undertow started on port(s) 19006 (http) with context path ''

 通过Chrome可以看到请求及响应报头如下

响应报头

 

由于笔者本地是自签名证书,没有正式的证书,比没使用tls之前慢,没有深入研究。

 感兴趣的研究证书 https://www.cnblogs.com/passedbylove/p/12054364.html

原文地址:https://www.cnblogs.com/passedbylove/p/12385882.html