Jetty 9.3庆祝20周年生日快乐,并增加HTTP/2支持

2023-10-07 01:38

本文主要是介绍Jetty 9.3庆祝20周年生日快乐,并增加HTTP/2支持,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2015/06/Building-Distributed-Systems

今年6月12日,Jetty项目发布了旗舰性开源嵌入式应用服务器的9.3版,同时这一天也是该项目的20周年纪念日。此次发布的主要特性包括增加了对HTTP/2服务端(与客户端)支持、系统最低要求Java 8,以及更多的NIO集成与完全重构的调度器。此外,该版本还移除了SPDY网络支持、并修复了自Jetty 9.2.x以来的400多个Bug。

Jetty的主开发者Greg Wilkins撰写了一篇博文,谈到了Jetty对HTTP/2的支持。在文章中,他介绍了如何在Jetty启动命令中轻松启用HTTP/2支持。

$ java -jar $JETTY_HOME/start.jar --add-to-startd=http2,http2c

上述命令并不会创建或是开启新的连接器/端口,只是向端口8080与8443的既有连接器上增加了HTTP/2协议。大多数现代浏览器的最新版本都提供了对HTTP/2的支持。请访问http://caniuse.com/#feat=http2了解各个浏览器对HTTP/2的支持情况。

InfoQ有幸采访到了Greg Wilkins,请他谈谈Jetty这20年的发展历程。

InfoQ:恭喜你,Greg,我敢打赌你从来没有想到Jetty竟然能发展到今天,20年的历程。

事实上,我一开始只是将其作为我所开发的一个问题追踪Web应用中的一个模块而已,从来没有想过有人会对它产生兴趣。但结果却是很多人都开始使用Jetty,同时该HTTP服务器也成为了我主要的工作方向(要不我肯定还在开发那个问题追踪应用,也许后来成为Atlassian也不一定呢【译者注:Atlassian是知名的协作工具Confluence与JIRA的开发公司】)。

在过去的10到15年间,我期望Web服务器能够成为像日常用品一样的东西,无论人们选择哪个服务器都不会有什么不同。但事实却并非如此:JVM发生了变化、标准发生了变化、优化服务器的方式发生了变化、开发Web应用的方式也发生了变化。因此,为了适应这些变化,Jetty也总是需要不断变化,而各个容器的变化则是不同的。

InfoQ:紧跟所有最新的标准与需求如WebSockets和HTTP/2是件非常有挑战的事情。能否向大家介绍一下你探索并实现这些需求的过程么?

成为JCP与IETF专家组成员让我们能够始终走在标准发展的最前沿,我们认为有时我们在引领标准,有时也在跟随标准。不过,我认为最棒的创新还是来自于真实用户的真实需求,作为广泛多样的开源社区的一部分是寻找到这些需求的关键所在:异步Servlets就源自ActiveMQ的一个特性需求;WebSockets之所以能引起我们的注意,原因在于Dojo中的cometd;我们现在正在调研反应式Stream APIs,因为很多用户对此都非常感兴趣。

InfoQ:微服务部署量的持续增加对Jetty的使用产生了何种影响?

Jetty当然也适用于微服务,不过我希望微服务能促进Jetty的发展(在真正的开源项目中这是很难的)。不过到目前为止,微服务并未驱动Jetty发生任何重要的改变,我希望这是因为我们的设计目标是针对简单的嵌入式用途,而微服务在这个领域中并没有什么新东西。

InfoQ:在应用服务器市场有很多竞争者,特别是开源领域的Tomcat。那么Jetty是怎样做到如此成功的呢?

我们并未感受到应用服务器市场的竞争,因为我们并不想与完整的EE,甚至是提供Web Profile的对手竞争。当然了,Jetty可以用于EE部署,不过我们深信面向组件的开发,不理解为何你的HTTP协议提供者应该负责持久化业务Beans、管理事务或是生成内容。有很多其他组件可以完成这些事情,我们只专注在自己擅长的领域上:为HTTP、HTTP2、WebSocket、FCGI等提供可伸缩的协议实现,让用户为应用的其他部分选择合适的组件。我们还可以确保的是,我们对其他项目也有很好的把控,因此将CDI、JSF、JMS、ETC等集成到Jetty中是非常直接且高效的。

如果说有什么区别的话,我们觉得专注在可伸缩的异步微服务的轻量级HTTP服务器是我们真正面对的竞争对手。这个领域有一些创新空间,我们希望能够支持他们所期望的语义,同时依然提供Servlet API。因此,我们一方面提供了类似的、可伸缩的、灵活的异步HTTP,同时在需要时又提供了对Servlet API的完全访问。

这种灵活的做法在市场上很有吸引力,看看使用Jetty的那些大公司吧,Google、Yahoo、Facebook、Salesforce、LinkedIn等,他们彼此之间的用法都不同,但没有一家公司像以前那种使用EE的。

InfoQ:计划何时发布兼容于Servlet 4.0的版本呢?

Jetty 10将会支持Servlet 4.0。不过,我们还不确定4.0中到底会有哪些东西,这个过程将会持续很长时间。因此,现在还没有具体的时间规划,到底加入什么特性目前也是不明朗的。

InfoQ:不久的将来,Jetty将会增加哪些特性?

尚不确定。我们有一些想法:反应式流、增强的CDI集成、Websocket over HTTP2、Quic等。我们已经开始着手对其中一些特性进行试验了,不过还需要真实的用户需求,接下来才能将这些大概的想法形成计划。

Webtide提供了对Jetty的支持。事实上,Professional Services站点就是个HTTP/2的测试床。

查看英文原文:Jetty 9.3 Celebrates 20th Anniversary, adds HTTP/2 Support

这篇关于Jetty 9.3庆祝20周年生日快乐,并增加HTTP/2支持的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/155240

相关文章

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww