Apache Tomcat jar Catalina

Apache Tomcat 为什么把内部的 jar 包取名为「Catalina」,有什么含意或寄寓吗? - 知乎 https://www.zhihu.com/question/68213723

作者:知乎用户
链接:https://www.zhihu.com/question/68213723/answer/260766297
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Apache、Tomcat与Catalina作为软件名字的含义与关系

 

如果你是从事于计算机软件相关工作的人,那你肯定经常见到Apache这个单词,也应该知道Tomcat这个服务器软件的名字,Catalina可能陌生一点,但你在配置tomcat时,一定会添加一个环境变量,然后指向tomcat的安装路径,这个环境变量的名字就叫Catalina_Home,进入tomcat安装目录,里面很多文件名字也叫Catalina。那么这三个单词作为软件的名字有什么含义、相互之间又是什么关系呢?

上世纪八十年代,当互联网开始在美国大学流行的时候,美国计算机名校伊利诺伊大学香槟分校(UIUC)的国家超级计算应用中心(National Center for Supercomputing Applications, NCSA)组织了一些研究生开始编写基于HTTP通信协议的服务器端和客户端程序。客户端端程序叫做mosaic,是第一个被普遍使用的网页浏览器,也是Netscape(网景)浏览器的前身,之后演变为Mozilla Firefox。而服务器端程序就是最早的Web服务器软件之一,名叫NCSA HTTPd,它完整地实现了HTTP协议,整个实验获得了成功。然而伊利诺伊大学香槟分校也许仅出于学术研究目的,在实验成功后开发工作就没有继续下去,研究小组也随之解散,但他们将这两个软件开源,其代码可以自由下载修改并发布。

此时的互联网对HTTP服务器软件的需求越来越大,公开源代码的NCSA HTTPd成了进一步发展的极好起点。很多研究者不断地给它添加功能、增加代码,并对不断出现的Bug打补丁。但因为缺乏规划和管理,出现了越来越多的重复劳动,随之而来的则是越多的补丁带来越多的Bug。1995年2月,为解决这种单打独斗的现象,8名志同道合的开发者决定成立一个小组,一起重写整个NCSA HTTPd程序,发布一个基于NCSA HTTPd的可靠的服务器软件。开发工作完成后,他们将软件命名为Apache,全称Apache HTTP Server。Apache本是美洲原住民印第安人一支部落的名字,这个部落因为高超的作战策略和无穷的耐性而闻名,同时也是最后一个屈服于美国政府的民族。开发小组以此寓意软件高效、可靠,同时表达了大公司迟早会参与竞争并“教化”这块最早的开源网络之地的担心。另外,因为整个软件是在NCSA HTTPd基础上打了很多补丁程序,他们也戏称它是“A Patchy Web Server”,意为一个打了很多补丁的Web服务器软件。“A Patchy”与Apache谐音,故以Apache命名一语双关。

Apache HTTP Server发布后,由于其具有坚实的稳定性、异常丰富的功能和灵活的可扩展性,得到了极大的成功。1999年6月,为有效支持Apache HTTP Server以及相关软件的发展,Apache开发小组成员们成立了一个非盈利性的Apache软件基金会(Apache Software Foundation)。大家对Apache这个名字的熟悉大概也是因为这个基金会,它支持开发了诸多享誉全球的开源软件,这些软件的名字前都会加上Apache,其中就包括Apache Tomcat。

Tomcat的这个单词的意思是“公猫”,因为它的开发者姆斯·邓肯·戴维森希望用一种能够自己照顾自己的动物代表这个软件,于是命名为tomcat,它的Logo兼吉祥物也被设计成了一只公猫形象。Tomcat是1999年Apache 软件基金会与Sun等其他公司一起合作的Jakarta(雅加达)项目中的一个子项目,作为服务器的容器支持基于Java语言编写的程序在服务器上运行,这样的程序被称为Servlet,因为它是运行在“Server”上的“Applet”。理论上讲这样一个容器并不是一个完整的服务器软件,因为它只能运行Java程序而不能生成HTML页面数据,也不能处理并发事务。但它集成了HTTP服务器程序,也就可以单独作为一个服务器软件来部署以处理HTTP请求,但tomcat核心技术并不在于此,所以除了用于开发过程中的调试以及那些对速度和事务处理只有很小要求的用户,很少会将Tomcat单独作为Web服务器。通常开发者会让tomcat与其他对Web服务器一起协同工作,比如Apache HTTP Server。Apache HTTP Server负责接受所有来自客户端的HTTP请求,然后将Servlets和JSP的请求转发给Tomcat来处理。Tomcat完成处理后,将响应传回给Apache,最后Apache将响应返回给客户端。于是在tomcat中运行Java程序也就是Servlet的那个模块因为体现了tomcat最核心特点而引起了大家的重视,而这个模块的名字叫做Catalina。

Catalina是美国西海岸靠近洛杉矶22英里的一个小岛,因为其风景秀丽而著名。Servlet运行模块的最早开发者Craig McClanahan因为喜欢Catalina岛故以Catalina命名他所开这个模块,尽管他从来也没有去过那里。另外在开发的早期阶段,Tomcat是被搭建在一个叫Avalon的服务器框架上,而Avalon则是Catalina岛上的一个小镇的名字,于是想一个与小镇名字相关联的单词也是自然而然。还有一个原因来自于Craig McClanahan养的猫,他养的猫在他写程序的时候喜欢在电脑周围闲逛。但这与Catalina有什么关系呢?我想可能是Catalina岛是个悠闲散步的好地方,猫的闲逛让Craig McClanahan想起了那里。

 
Raible Designs | A bit of Tomcat History - the names https://raibledesigns.com/rd/entry/a_bit_of_tomcat_history

A bit of Tomcat History - the names

I got this nugget of information off the tomcat-user list this morning.

I talked to the original Tomcat author, James Duncan Davidson, about the 
name choice. He gave me a surprising answer. Here's a bit of history...

Tomcat was born in response to the need for an independant servlet 
specification implementation. James wrote it hoping that it would 
eventually be open sourced. He figured that since most open source 
projects had O'reilly books about them that he should name it after an 
animal. Essentially he was thinking of an animal that would go on the 
cover of an O'reilly book. He came up with "Tomcat" since the animal 
represented something that could take care of itself and fend for 
itself. That's how he came up with the name.

And Craig McClanahan tells us why he named the Catalina Engine so:

Using "Catalina" was my idea, because I
wrote most of the original code that became it.  The reasons are mundane,
but here they are for the record:

* Even though I don't live in Southern CA, I've always liked
  what I've read and seen of Catalina Island.

* One of the towns on the island is Avalon, and we were (at the
  beginning) considering using the Avalon Framework
  (http://jakarta.apache.org/avalon/) for the internal architecture.
  It would have been a cute tie-in, but alas it didn't happen
  that way.

* When I'm coding, I regularly have one or more cats wandering
  around my lap and adding to the whitespace when they don't
  think I put enough (you don't need fingers to press the space bar :-).

Another "code name" you'll hear in the Tomcat world is Jasper -- that's
the name of the JSP page compiler part of Tomcat.  That name was carried
over from even before my time, but I'm sure it probabbly came from the
alliteration (JaSPer).

 

 
 
 
应该没那么复杂,就是飞机的名称。Catalina远程轰炸机的意思。和Apache取名如出一辙。(纯个人推论)tomcat:野猫战机。早期很喜欢使用飞机分类来命名。
 
 Apache Tomcat - 维基百科,自由的百科全书 https://zh.wikipedia.org/wiki/Apache_Tomcat
Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对ServletJavaServer PageJSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全局管理和Tomcat阀等。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。但是,不能将Tomcat和Apache HTTP服务器混淆,Apache HTTP服务器是用C语言实现的HTTPWeb服务器;这两个HTTP web server不是捆绑在一起的。Apache Tomcat包含了配置管理工具,也可以通过编辑XML格式的配置文件来进行配置。

Tomcat 3.x[编辑]

  • 符合Servlet 2.2和JSP 1.1规范
  • Servlet更新
  • 基础的HTTP功能

Tomcat 4.x[编辑]

  • 符合Servlet 2.3和JSP 1.2规范
  • Servlet容器被重新设计,并被命名为Catalina
  • JSP引擎被重新设计,并被命名为Jasper
  • 新的Coyote连接器
  • 支持JMX,使用JSP和基于Struts的管理系统

Tomcat 5.x[编辑]

Tomcat 6.x[编辑]

  • 符合Servlet 2.5和JSP 2.1规范
  • 支持统一表达式语言2.1
  • 设计运行在Java SE 5.0及以后版本上
  • 通过CometProcessor接口实现了对Comet的支持
  • 不同于过去版本,未集成管理员(admin)控制台

Tomcat 7.x[编辑]

  • 支持Servlet 3.0

Tomcat 8.x[编辑]

  • 支持Servlet 3.1

Tomcat 9.x[编辑]

  • 支持Servlet 4.0

Tomcat 10.x[编辑]

  • 支持Servlet 5.0

最新版的tomcat

 

 

 

 
 
 
 
 
 
 
posted @ 2021-11-22 14:38  papering  阅读(110)  评论(0编辑  收藏  举报