[完整] SpringBoot开启Http2

这篇具有很好参考价值的文章主要介绍了[完整] SpringBoot开启Http2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 什么是Http2.0

HTTP/2.0,通常简称为HTTP/2,是一种用于传输超文本(例如网页和资源文件)的网络协议。它是HTTP/1.1的继任者,旨在提高性能和效率,以适应现代Web应用的需求。HTTP/2的主要特点包括以下几点:

  1. 多路复用(Multiplexing):HTTP/2允许多个请求和响应同时在单个连接上传输,而不像HTTP/1.1一样需要建立多个连接。这消除了HTTP/1.1中的队头堵塞问题,提高了性能和响应速度。
  2. 头部压缩(Header Compression):HTTP/2使用HPACK算法对HTTP头部进行压缩,减少了头部传输的数据量,从而降低了带宽消耗和加载时间。
  3. 二进制传输(Binary Protocol):HTTP/2使用二进制协议来传输数据,而不是HTTP/1.1中的文本协议。这使得数据传输更加高效,减少了解析复杂性。
  4. 服务器推送(Server Push):HTTP/2允许服务器在客户端请求一个资源时主动推送相关资源,从而减少了客户端的等待时间和请求次数,提高了性能。
  5. 流量控制(Flow Control):HTTP/2引入了更精细的流量控制机制,允许客户端和服务器更好地管理数据流量,防止过载。
  6. 请求优先级(Priority):HTTP/2支持请求优先级,允许指定哪些请求应该优先处理,以提高用户体验。

2. 代码实战

2.1 生成证书

java内置keytool可以生成自签名证书,使用keytool之前需要确保你配置了JAVA_HOME或者你在keytool目录下运行该命令,并输入两次密码。

keytool -genkey -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -dname "CN=li, OU=zelin, O=zelin, L=bj, ST=bj, C=CN"

运行该命令后会在当前路径生成一个keystore.p12证书文件,将该文件放进SpringBoot项目中的resources目录下。

2.2 配置项目

application.properties中配置以下选项。

# 配置http2
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-password=替换成你输入的密码
server.ssl.key-store-password=替换成你输入的密码
server.http2.enabled=true

3. 验证是否使用HTTP2

打开浏览器的F12开发控制台,

查看请求标头是否使用HTTP2

4. 扩展

由于项目使用HTTP2,默认只能使用HTTPS进行访问,所以需要配置HTTP的流量转发到HTTPS的端口。

建议使用NGINX进行配置,不要在项目进行硬性配置。以下是一个NGINX的配置示例文章来源地址https://www.toymoban.com/news/detail-700292.html

server {
    listen 80;
    server_name your_domain.com;

    # 重定向所有HTTP请求到HTTPS
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name your_domain.com;

    # 指定SSL证书和密钥文件的路径
    ssl_certificate /path/to/your_ssl_certificate.crt;
    ssl_certificate_key /path/to/your_ssl_certificate_key.key;

    # 添加其他SSL配置选项,如SSL协议版本和密码套件

    # 在这里配置您的HTTPS服务器块
    # 例如:
    location / {
        # 配置您的应用程序或代理设置
    }
}

到了这里,关于[完整] SpringBoot开启Http2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FireFox禁用HTTP2

    最近需要调试接口,但是,Chrome都是强制使用h2协议,即HTTP/2协议。为了排除h2协议排除对接口调用的影响,需要强制浏览器使用HTTP1协议。 设置firefox的network.http.http2.enabled为禁用,这样就禁用http2协议。 这样就强制Firefox使用http1协议,请求后台接口。

    2024年02月10日
    浏览(34)
  • nginx启用HTTP2特性

    本文于2017年2月底完成,发布在个人博客网站上。 考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。 修改编译选项 在 configure 的选项中加入 --with-http_v2_module ,由于HTTP2需要SSL的支持,因此如缺少 --with-http_ssl_module 选项,还需要加入 --w

    2024年02月02日
    浏览(43)
  • HTTP1.1、HTTPS、HTTP2.0 、HTTP3.0

    优点: 整体方面:简单、灵活和易于扩展、应用广泛和跨平台 性能方面:长连接、管道网络传输解决请求队头阻塞(没有使用) 缺点: 安全方面:无状态、明文窃听、伪装、篡改 性能方面: Header未经压缩就发送,只能压缩body,头部冗长 每次发送相同的首部造成比较多的

    2024年02月16日
    浏览(37)
  • HTTP1.0、HTTP1.1、HTTP2.0 协议的区别

    HTTP 1.1相比HTTP 1.0具有以下优点: 1. 持久连接 :HTTP 1.1引入了持久连接机制,允许多个请求和响应复用同一个TCP连接。这样可以减少建立和关闭连接的开销,提高性能和效率。 2. 流水线处理 :HTTP 1.1支持流水线处理,即可以同时发送多个请求,不需要等待前一个请求的响应。

    2024年02月05日
    浏览(51)
  • HTTP1.0、HTTP1.1、HTTP2.0 协议的特点

    HTTP(Hypertext Transfer Protocol)是一种用于在Web浏览器和Web服务器之间传输数据的协议。HTTP的版本有很多,其中比较常见的有 HTTP 1.0 、 HTTP 1.1 和 HTTP 2.0 ,它们有各自的特点。 HTTP 1.0 的特点: 1. 每个请求/响应需要建立新的TCP连接,并在完成后关闭连接,导致较高的延迟。 2. 每

    2024年02月05日
    浏览(46)
  • Nginx安装http2和ssl模块

    Nginx在执行默认安装命令的时候,并不会编译启用ngx_http_v2_module模块。故在修改Nginx配置文件启用http2.0协议的时候会报错。 一.检查Nginx安装了哪些模块 如图就是没有安装ngx_http_v2_module模块 二.重新编译Nginx Nginx有两个目录,一个是安装目录,一个是源码目录,安装目录就是执

    2024年01月16日
    浏览(42)
  • HTTP1.0和HTTP1.1和HTTP2.0的主要区别

    先上结论,面试常问,同时也是我们学习HTTP协议所必须了解的一些新机制,我们往往学习的都是HTTP1.0的一些基础,1.1 2.0也是企业中常用的东西,也优化了很多nb的属性,下面我们简单来了解下! HTTP 是基于TCP/IP协议的,每一次 建立或者断开连接 都需要三次握手四次挥手的 开销

    2023年04月17日
    浏览(53)
  • jdk8使用okhttp发送http2请求

    本文主要用于工作记录,在项目中遇到了就记录一下 在早期,原生的JDK8是不支持HTTP/2协议的,所以,要想使用这个特性,需要有web服务器和应用环境的支持, 例如:在VM中增加 -Xbootclasspath/p:/Users/a1234/Downloads/alpn-boot-8.1.11.v20170118.jar 来配合使用 但是从8u252开始,ALPN层已经从

    2024年02月14日
    浏览(50)
  • http1.0,http1.1,http2.0,http3.0 区别有哪些

    20 世纪 60 年代,美国国防部高等研究计划署(ARPA)建立了 ARPA 网,这被认为是互联网的起源。70 年代,研究人员基于对 ARPA 网的实践和思考,发明出了著名的 TCP/IP 协议。该协议具有良好的分层结构和稳定的性能,并在 80 年代中期进入了 UNIX 系统内核,促使更多的计算机接

    2024年02月08日
    浏览(48)
  • 关于HTTP、HTTPS、HTTP1.1、HTTP2.0、HTTP3.0的介绍及区别

    一、HTTP的简介        HTTP(超文本传输协议)是一种用于分布式、协作式和超媒体信息系统的应用层协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的www文件都必须遵循这个标准。设计初衷是为了提供一种发布和接收HTML页面的方法。 二、HT

    2024年02月01日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包