首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringBoot2.1(7)HTTP/2,及自签名HTTPS

《回顾》

上一篇,说了一个超简单的定时任务处理方案。还说到了怎么编译War包,把项目运行在Tomcat中。

这篇,依旧不难,而且很短,介绍怎么给自己的项目,开启HTTP/2,并使用HTTPS协议。

短,不一定都是缺陷。

一、简单了解HTTP/2

HTTP/2 (原名HTTP/2.0)即超文本传输协议2.0,是下一代HTTP协议

HTTP/2 更高效、更简单、更强大,它在传输层解决了以前我们HTTP1.x中一直存在的问题。

新的二进制格式

HTTP1.x的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性需要考虑的场景必然很多,二进制则不同,只认0和1的组合。

多路复用

即连接共享,即每一个request都是连接共享机制的。一个request对应一个id,这样一个连接上可以有多个request,每个连接的request可以随机的混杂在一起,接收方可以根据request的 id将request再归属到各自不同的服务端请求里面。

header压缩

HTTP2.0使用HPACK 压缩格式,压缩请求和响应表头源数据,来减少需要传输的header大小,通讯双方各自cache一份header fields表,既避免了重复header的传输,又减小了需要传输的大小。

服务器推送

服务器可以对一个客户端请求发送多个响应。 换句话说,除了对最初请求的响应外,服务器还可以向客户端推送额外资源,而无需客户端明确地请求。

二、生成HTTPS证书

虽然,HTTP/2支持使用明文的HTTP协议,但是SpringBoot开启HTTP/2必须使用HTTPS。

1、进入Java安装目录

执行命令:

bin/keytool -genkey -alias localhost -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -dname "CN=localhost, OU=zhoudong, O=zhoudong, L=bj, ST=bj, C=CN"

查看证书是否生成:(就在执行命令的路径下)

三、为项目配置HTTP/2、HTTPS

1、将已经生成的证书,复制到项目resources目录

2、配置文件增加配置

#端口号

server.port=8443

#配置ssl (https)

# keystore.p12的路径

server.ssl.key-store=classpath:keystore.p12

# 之前输入的口令

# 之前输入的口令

server.ssl.key-store-password=mypassword

#配置ssl (https) end

#使用http2

3、编写一个用于测试的接口

@GetMapping("/index")

publicMap index(){

log.info("访问index....");

returnMap.of("msg","hello.");

}

4、启动应用

访问:

https://localhost:8443/index

5、关于提示"不安全连接"问题

因为属于自签名证书,所以不被浏览器信任,忽略掉就可以。工作中,公司会花钱去买证书。

2018年,最后一篇技术文章。祝:假期愉快。

四、源码获取

SpringBoot2.1系列的的文章,每一篇都会对应一个单独的项目。

所有项目源码,均托管在Gitee,并会持续更新。

对技术,我始终充满敬畏之心,我也是怀着这种敬畏,去写每一篇文章,如果你觉得我写的对你有帮助,那就关注或帮忙分享朋友圈吧。

实在不行,点个「好看」也是爱。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181228G1LEEW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券