前言
众所周知,HttpClient 是Apache Jakarta Common 下的子项目,但是未必所有人都能明白Apache Jakarta项目是什么回事,本文就给大家讲述一下这个项目的历史渊源。
1、Apache软件基金会介绍
Apache软件基金会(Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。
2、Apache软件基金会发展历史
Apache软件基金会正式创建于1999年7月,它的创建者是一个自称为“Apache组织”的群体。
这个“Apache组织”在1999年以前就已经存在很长时间了,这个组织的开发爱好者们聚集在一起,在美国伊利诺伊斯大学超级计算机应用程序国家中心(National Center for Supercomputing Applications,简称为NCSA)开发的NCSA HTTPd服务器的基础上开发与维护了一个叫Apache的HTTP服务器。
最初NCSA HTTPd服务器是由Rob McCool开发出来的,但是它的最初开发者们逐渐对这个软件失去了兴趣,并转移到了其他地方,造成了没有人来对这个服务器软件提供更多的技术支持。因为这个服务器的功能又如此强大,而代码可以自由下载修改与发布,所以,这个服务器软件的一些爱好者与用户开始自发起来,互相交流并分发自己修正后的软件版本,并不断改善其功能。为了更好进行沟通,Brian Behlendorf自己建立了一个邮件列表,把它作为这个群体(或者社区)交流技术、维护软件的一个媒介,把代码重写与维护的工作有效组织起来。这些开发者们逐渐地把他们这个群体称为“Apache组织”,把这个经过不断修正并改善的服务器软件命名为Apache服务器(Apache Server)。
Apache这个命名是根据北美当地的一支印第安部落而来,这支部落以高超的军事素养和超人的忍耐力著称,19世纪后半期对侵占他们领土的入侵者进行了反抗。为了对这支印第安部落表示敬仰之意,取该部落名称(Apache)作为服务器名。
3、Jakarta项目
后来,由于商业需求的不断扩大,Apache组织以Apache HTTP服务器为中心,启动了更多的与Apache项目并行的项目,比如PHP、Java Apache项目等等。随着时间的推移以及形势的变化,Apache软件基金会的项目列表也不断更新变化中——不断的有新项目启动,项目的中止以及项目的拆分与合并。见下文的HttpClient,就是经历了项目的拆分和合并,从Jakarta拆分,然后合并到Httpcomponents项目。
在Java领域,最出名的Apache项目是Jakarta。Jakarta就是为了发展JAVA容器而启动的Java Apache项目,后来由于SUN公司的建议,项目名称变为Jakarta。但当时该项目的管理者也没有想到Jakarta项目因为JAVA的火爆而发展到如今一个囊括了众多基于JAVA语言开源软件子项目的项目。以至后来,不得不把个别项目从Jakarta中独立出来,成为Apache软件基金会的顶级项目,例如:Struts项目,还有HttpClient项目
4、HttpClient项目
最初,HttpClient 是Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。
而今,Apache Jakarta Commons HttpClient项目已经寿终正寝,不再开发和维护。取而代之的是Apache Httpcomponents项目,它包括HttpClient和HttpCore两大模块,能提供更好的性能和更大的灵活性。
备注:
“Apache Jakarta Common” 其含义表示为:Apache组织下的Jakarta项目里面的子项目Common,这个这种说法跟Java里面的包名类似,一环套一环了。