>>分享Java Web开发技术,并且对孙卫琴的《Tomcat与Java Web开发技术详解》提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 23597 个阅读者 刷新本主题
 * 贴子主题:  在Tomcat9中配置HTTP/2 回复文章 点赞(0)  收藏  
作者:sunshine    发表时间:2018-07-04 02:30:58     消息  查看  搜索  好友  邮件  复制  引用

介绍
JavaEE 8的最重要的发展之一就是对HTTP/2的支持(现在的官方 RFC 7540)。现在JCP的 JSR-369已经发展了近2年的时间,规范的负责人Ed Burns和Shing Wai Chan在推进该进程中做了大量的工作。

在写作的时候,当前三家服务器厂商支持Servlet 4.0: Apache Tomcat 9.0.0.M4,Jetty 9 和 WildFly 10.0.0.Final。我们可以看一下如何配置 Tomcat 9 以支持它。

HTTP2的目标
HTTP/2的目标是增加Web浏览体验的性能感受。


为什么需要HTTP2
一个Web页面需要加载许多的资源。在HTTP 1.0中,对所有资源的请求都是同时发出的并且服务端响应所有的请求。如果其中的一个资源花费了额外的时间,因为头线阻塞,那么所有其他的资源都会被阻塞。

从HTTP1.1升级
大多数Web站点使用HTTP1.1。要升级至 HTTP/2 可以使用头更新 (101 协议开关) 来向服务端发送 h2c,该服务器会升级至 h2c (c 意味着明确的文本),注意,目前在Firefox和Chrome中并没有h2c。

如何才是安全的呢?可以使用ALPN,它是一个TLS的扩展,在握手时可以发送一个扩展然后服务器就会检测到通讯协议是h2。


下载Tomcat 9
为你的系统下载相应的Tomcat 9 二进制发行版,然后通过解压压缩包来进行安装。确保已经安装了Java 8 SE。

用OpenSSL生成证书
正如上面已经讨论过的,配置TLS来使用 HTTP/2是非常必要的,因为Firefox和Chrome对明确文本支持的缺乏。对于TLS,需要一个证书,如果还没有准备好一个证书,可以用 OpenSSL 生成。

配置server.xml
Tomcat 9 的一个改变是对于TLS虚拟主机和多证书的支持是通过一个单一连接器实现的。.

Open the conf/server.xml file and make the following configuration changes.

<Connector port="8443"
protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true">
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol"/>
<SSLHostConfig honorCipherOrder="false">
<Certificate certificateKeyFile="conf/ca.key"
certificateFile="conf/ca.crt"/>
</SSLHostConfig>
</Connector>
重启Tomcat。

结论
要测试这个配置可以访问 https://localhost:8443。如果看到了Tomcat主页,那么就为Tomcat 9成功地配置了TLS。这时就可以使用 Servlet 4.0进行开发了。





程序猿的技术大观园:www.javathinker.net
  Java面向对象编程-->泛型
  JavaWeb开发-->JSP中使用JavaBean(Ⅰ)
  JSP与Hibernate开发-->域对象在持久化层的四种状态
  Java网络编程-->Java反射机制
  精通Spring-->Vue组件开发基础
  Vue3开发-->Vue CLI脚手架工具
  服务器端推送技术汇总
  在Java Web应用中获取绝对路径和相对路径
  JSP 国际化
  JSP HTTP 状态码
  Servlet的运作原理
  Apache Internal Server Error 解决方法
  Tomcat虚拟主机配置以及各种优化
  设置和获取Cookie
  读《Tomcat与JavaWeb开发技术详解》的笔记
  通过URLConnection类访问网上URL资源
  浏览器端ISO-8859-1编码,服务器端用GB2312转换编码的原理
  JSP2和Servlet3的一些新特性
  深度介绍响应式编程
  欢迎读者们为《Tomcat与JavaWeb开发技术详解》书的升级提出宝...
  深入分析Java Web中的中文编码问题
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。