文档章节

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

husthang
 husthang
发布于 2017/02/17 14:56
字数 1658
阅读 103
收藏 0

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想起了那里。

参考

© 著作权归作者所有

共有 人打赏支持
husthang
粉丝 15
博文 23
码字总数 17164
作品 0
武汉
程序员
为解压版的Tomcat创建一个窗口服务(修正版)

一,配置环境变量 1,把JDK安装到C: Program Files文件的Java jdk1.6.0,下载免安装版tomcat6.0(Tomcat的邮编)压缩包,把Tomcat的解压放到C: Tomcat6.0下 2,添加系统环境变量: JAVAHO...

张xtpgyaps
2011/06/27
0
0
Java Web开发入门 - 第3章 Tomcat单元作业

1(4分)解释一下web资源中的静态资源与动态资源概念以及其区别 Web资源中静态资源与动态资源 静态资源是指,不管我们如何加入参数,资源的内容是不变的。这类资源我们事先会准备号,Web中常...

抢小孩糖吃
2016/08/20
76
0
catalina.home catalina.base 区别

这两个属性仅在你需要安装多个Tomcat实例而不想安装多个软件备份的时候使用,这样能节省磁盘空间。 以Tomcat6.0为例,其Tomcat目 录结构如下: bin (运行脚本) conf (配置文件) lib (核心库...

yzbty23
2016/11/28
19
0
Tomcat多实例部署及其原理

(一) 什么是tomcat多实例部署? tomcat多实例部署指的是只需要安装一个tomcat服务器软件同时可部署多个应用实例的场景,这样做的好处是: 不需要到处拷贝tomcat软件,减少磁盘空间占用; 当需...

jcc_codingBoy
2016/04/11
505
0
Apache+tomcat的整合

为什么要做这个整合呢?当然,首先想到是就是Apache和Tomcat的区别。正因为有区别,有各自的优缺点才需要整合,取二者所长,弃二者所短。 Apache和Tomcat都可以在他们的官网下载: http://ww...

imzdx
2015/08/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

阿里云国际版香港CN2测评 月付9美元/30M带宽/1T流量

市面上很多家香港VPS服务商,一直都说阿里云国际版香港CN2线路好,延迟低,速度快,价格便宜流量还多,那么这个香港线路到底怎么样呢?本文从性能、延时、路由、速度方面来全方面测评一下阿里...

flyzy2005
48分钟前
0
0
撤销git commit --amend

it commit -amend之后想撤销 git reset HEAD@{1}

xiaomge
54分钟前
0
0
有意思的TimeUnit

java.util.concurrent.TimeUnit 这个类,相信童鞋们都不陌生。它是一个enum: public enum TimeUnit 好吧,我一直把它当做一个枚举类来用。偶然看到还有别的用法,大吃一斤,原来 TimeUnit 并...

polly
今天
9
0
生成pyc

Python生成pyc文件 pyc文件是py文件编译后生成的字节码文件(byte code)。pyc文件经过python解释器最终会生成机器码运行。所以pyc文件是可以跨平台部署的,类似Java的.class文件。一般py文件改...

Mr_Tea伯奕
今天
0
0
180815-Spring之RestTemplate中级使用篇

Spring之RestTemplate中级使用篇 前面一篇介绍了如何使用RestTemplate发起post和get请求,然而也只能满足一些基本的场景,对于一些特殊的如需要设置请求头,添加认证信息等场景,却没有提及可...

小灰灰Blog
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部