[转帖]Apache、Tomcat与Catalina作为软件名字的含义与关系
Apache、Tomcat与Catalina作为软件名字的含义与关系 -- :: 复杂度掠夺者 阅读数 3356更多 分类专栏: 术语解释 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/yingchengsun/article/details/44340211 解释的挺好的 转帖一下 1. apache 的 服务 好像是 httpd2. tomcat 的catalina 是 java运行时容器
如果你是从事于计算机软件相关工作的人,那你肯定经常见到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想起了那里。
参考文献
http://en.wikipedia.org/wiki/Apache_Software_Foundation
http://en.wikipedia.org/wiki/NCSA_HTTPd
http://en.wikipedia.org/wiki/Apache_HTTP_Server
http://os.51cto.com/art/200608/30403.htm
http://baike.baidu.com/link?url=NN4jXdeJMo-iiSEO1b2-vplZybw3cQkMkY7fhfoZXy1SSNbsN3cXizz7uxwbDvzHChcLzWx1XHUYmUBeIdiitK#3
http://www.quora.com/In-Apache-Tomcat-where-did-the-name-Catalina-come-from
http://blog.csdn.net/huangtingyu/article/details/3429789
http://www.cnblogs.com/gaojing/archive/2009/09/15/1565731.html
[转帖]Apache、Tomcat与Catalina作为软件名字的含义与关系的更多相关文章
- Tomcat中acceptCount,maxConnections、maxThreads的含义及关系
个人对tomcat连接器3个属性maxConnections.maxThreads.acceptCount的理解: 先摘取官网对这3个属性的描述: acceptCount The maximum qu ...
- org.apache.catalina.core.DefaultInstanceManager cannot be cast to org.apache.tomcat.InstanceManager
1.控制台报错信息 严重: Servlet.service() for servlet [jsp] in context with path [/Resource] threw exception [ ...
- apache tomcat (catalina)查版本(solaris/unix)
先进到tomcat的bin目录下(cd /tomcat目录/bin),在执行./version.sh https://blog.csdn.net/vv___/article/details/78653 ...
- o.a.catalina.core.AprLifecycleListener : An incompatible version [1.2.7] of the APR based Apache Tomcat Native library is installed, while Tomcat requires version [1.2.14]
1.错误信息提示: 2019-04-16 22:02:05.811 ERROR 18112 --- [ main] o.a.catalina.core.AprLifecycleLi ...
- Tomcat:基于Apache+Tomcat的集群搭建
根据Tomcat的官方文档说明可以知道,使用Tomcat配置集群需要与其它Web Server配合使用才可以完成,典型的有Apache和IIS. 这里就使用Apache+Tomcat方式来完成基于To ...
- Apache+Tomcat构建Tomcat负载均衡集群
一.环境介绍 二.安装后端服务器 三.安装前端Apache服务 四.配置Apache使用mod_jk模块实现代理及负载均衡 五.配置Apache基于mod_proxy模块实现代理及负载均衡 六.论坛安 ...
- apache + tomcat 集群
apache2.2与tomcat集成(可以多个tomcat) 需求概况: 有3个服务: localhost:9091, localhost:9190. localhost:9191分别对应3个tomc ...
- centos6.5 apache+tomcat结合 负载均衡
一. 负载均衡:根据 uri 表达式把请求分发给各个服务器处理.如:/*.jsp = lb_s 就是说把所有jsp请求交给lb_s , 当然它是个Tomcat. 二. 安装配置mod_jk m ...
- Linux平台上搭建apache+tomcat负载均衡集群
传统的Java Web项目是通过tomcat来运行和发布的.但在实际的企业应用环境中,采用单一的tomcat来维持项目的运行是不现实的.tomcat 处理能力低,效率低,承受并发小(1000左右).当 ...
随机推荐
- LibreOJ #116. 有源汇有上下界最大流
二次联通门 : LibreOJ #116. 有源汇有上下界最大流 /* LibreOJ #116. 有源汇有上下界最大流 板子题 我也就会写写板子题了.. 写个板子第一个点还死活过不去... 只能打个 ...
- 《论文翻译》 GIOU
目录 广义交并比-GIOU(回归检测的一种指标和Loss) 注释 1. 摘要 2. 介绍 3. 相关工作 4. 广义交并比 5. GIOU作为目标检测的LOSS 6. 实验结果 7. 个人理解 单词汇 ...
- Centos7的rabbitmq镜像集群
1.下载RabbitMQ vim /etc/hosts10.10.21.197 rabbit110.10.21.198 rabbit2 #分别命名hostname rabbit1hostname ra ...
- 结构体与C++sort()函数的用法
C++sort()函数的用法 先看道题(本题来自http://codeup.cn/第26099): 题目描述 [问题描述] 高三全省联合模拟考试刚刚结束,经过各科老师的努力,各个学科的改卷工作终于结束 ...
- Java 代码里乱打日志了,这才是正确的打日志姿势
使用slf4j 使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一. 实现方式统一使用: Logback框架 打日志的正确方式 什么时候应该打日志 当你遇到问题的时候,只能通过debug功能 ...
- 十一月百度杯pwnme 详细wp
目录 程序基本信息 程序溢出点 整体思路 exp脚本 成功获得flag 参考 程序基本信息 可以看到开启了栈不可执行和got表不可写保护. 程序溢出点 在函数sub_400AF7中,v8可以读入0x1 ...
- SSH 三大框架整合
Spring整合web项目 在Servlet当中直接加载配置文件,获取对象 存在问题 每次请求都会创建一个Spring的工厂,这样浪费服务器资源,应该一个项目只有一个Spring的工厂. 在服务器启动 ...
- oracle之case
使用oracle时,不免会用到判断后转换为要展示的值,这里常用case,如下: SELECT (case ) then 'yes' ) then 'no' else 'other' end) --no ...
- Colab使用教程
目录 有关链接 使用GPU 切换文件夹 参考 有关链接 Google Colabratory Google Drive 使用GPU 以下两种方式都可以: "修改"->&quo ...
- linux下查看memcache是否正常
1 查看memcache启动1.1 在xshell中查看memcache是否启动在xshell中输入ps -ef | grep mem,显示结果如下,说明memcache已经启动. [r ...