Apache模块开发指南
基本信息
- 作者: (英)Nick Kew [作译者介绍]
- 译者: 张立强 徐建明
- 丛书名: LAMP技术精品书廊
- 出版社:电子工业出版社
- ISBN:9787121059681
- 上架时间:2008-4-29
- 出版日期:2008 年3月
- 开本:16开
- 页码:558
- 版次:1-1
- 所属分类:
计算机 > 软件与程序设计 > 网络编程 > 综合
编辑推荐
想通过实例学好Apache吗?本书就是一个理想的选择。让你最喜欢的编辑器和编译器时刻待命,你将会碰到让你跃跃欲试的代码。祝贺你已经挑选出了正确的书——本书正是Apache模块编程公认的标准指导。
——Rich Bowen,与人合著过《Apache Administrators Handbook》、《Apache Cookbook》和《The Definitive Guide to Apache mod_rewrite》
作为网上书店点击率最高的Apache模块编程指导,本书讲解了利用Apache模块开发应用程序的方方面面一——无论您是初学者还是经验丰富的专家,本书都是Apache开发者的必读之书。本书严谨细致、一丝不苟,其内容不仅包括了Apache模块开发最基础的知识,还涉及Apache模块开发的最佳实践、安全和调试,并且在一些章节中讲解了最受欢迎的Apache DBD构架的一切。
——Noirin Plunkett,Apache httpd工程的文稿起草人、ASF协商委员会的成员
开发Apache 2.X模块和应用程序独一无二的全面指导:
Apache不仅是世界上最流行的Vveb服务器,同时也是一个非常强大的可扩展的开发平台。现在ApacheTutor.org的Nick Kew撰写了《The Apache Modules Book》,本书从头到尾都以丰富的实例来指导每一个想要充分利用Apache的开发者。
Kew首先深入浅出地详细描述了Apache构架和它的API,然后讲述了你需要的所有技术——从需求处理到代码安全。PerI和PHP之类的高级语言能提高软件开发的效率,而有些开发任务必须依靠基于C的技术来完成,Kew完美地结合了C语言和高级语言的优点。利用本书中的代码样例,Kew还介绍了在其他书中甚至在其他任何地方也没有记录过的技术。
包含以以下内容:
利用Apache轻型运行库来简化C的开发,并且避免了这种方法的缺点
Leveraging Apache DBD构建的应用程序,比由传统LAMP软件构建的应用程序更加容易扩展
使用最新的Apache 2.X特性:过滤模块,支持XML和敏捷的代理服务器
掌握从线程安全到多平台开发的最优方法
使用Apache鉴定框架
在Apache模块和自定义的模块中跟踪和调试错误
网页:
可从ApacheTutor.org下载本书的示例代码。所有的代码都简单易用,可以轻易地嵌入现有的应用程序中。
推荐阅读
内容简介回到顶部↑
作译者回到顶部↑
本书提供作译者介绍
.. << 查看详细
目录回到顶部↑
1.1 apache web服务器简史
1.1.1 apache 1
1.1.2 apache 2
1.2 apache软件基金会
1.2.1 功绩组织模式(meritocracy)
1.2.2 角色
1.2.3 哲学理念
1.3 apache开发流程
1.3.1 apache代码仓库
1.3.2 开发者论坛
1.3.3 开发人员
1.3.4 参与apache工作
1.4 apache和知识产权
1.4.1 apache许可证
1.4.2 第三方知识产权
1.5 进一步阅读资料
1.5.1 交互式在线论坛
1.5.2 会议
1.5.3 网站
译者序回到顶部↑
然而,面对Apache日益庞大的结构和纷繁的代码,无论是开发者还是研究者都感觉无法入手。如果有经验丰富的Apache导游能够带领我们提纲挈领地游览一下Apache的美丽风光,让我们站在巨人的肩膀上居高临下地审视Apache的结构,并对相关的细节进行讲解,那将对我们掌握Apache的架构和实现具有非常大的帮助。本书作者Nick Kew就是这样一名经验丰富而且善于表达的导游,他精通Apache的设计和实现,是Apache的很多非常著名的模块的开发者,同时也是Apache参考文档的撰写者。
本书详细介绍了Apache的架构和模块,并对Apache的发展历史、平台和架构、MPM、APR、编程技巧和规范、模块的配置、模块的扩展、模块的调试等方面进行了介绍,使读者能够详细了解Apache模块开发的所有细节,并根据HTTP消息处理的流程介绍了请求处理过程和相关函数、内容生成器和过滤器的工作机理和模块,并且针对目前被广泛关注的Web安全问题介绍了访问控制模块,针对目前数据库的广泛应用介绍了DBD模块。本书对Apache模块的介绍不仅深入浅出,而且内容翔实,涵盖了模块开发的全部相关细节,并有大量的示例代码,对于理解和进一步开发Apache模块具有非常大的帮助。..
我们很荣幸能够有机会承担本书的翻译工作,将这本优秀的作品带给中国的读者。在翻译过程中,我们经常为一句话、一个术语、一个注释进行反复的讨论和斟酌,力求能够正确而严格地体现原文的含义,同时注意让语言逻辑符合国人的语言习惯。我们真挚地希望读者能够从本书中有所收获。Apache2的相关资料非常少,希望本书对国内进行Apache开发的相关人员和对Apache进行研究的相关人员有所帮助。同时,本书对HTTP 1.1协议进行了系统地翻译,对于Web开发者和研究者来说,是一个不可多得的参考资料。
本书由张立强和徐建明进行翻译。其中张立强负责翻译前言、序、内容介绍、第1章、第2章、第3章、第4章、第7章、第8章、附录A、附录B和附录C,并邀请原作者Nick Kew为本书的中文版本写序。徐建明负责翻译第5章、第6章、第9章、第10章、第11章和第12章。感谢本书原作者Nick Kew为中文版撰写序。感谢博文视点的周筠、杨福川和晓菲编辑对本书的配合和支持,并对该书进行了全面、细致的审校,提出了大量的宝贵意见,在此表示衷心的感谢。
在此特别感谢IBM武汉分公司软件部各位同事、武汉竟升弘业信息系统工程有限公司总经理孙涛、湖南省电力公司信息中心眭建新、华中电网科技有限公司高澜、南方航空武汉分公司李静和我们的朋友耿安立、李志刚、张琪、任鑫平。我们的成长与进步离不开你们的支持与帮助,在此深表感谢。
在翻译过程中,译者尽量采用已被业界广泛接受的技术术语。由于译者的经验和水平有限,译文难免有疏漏和不妥之处,恳请读者批评指正。
张立强
徐建明
2008.1于武昌...
前言回到顶部↑
Apache Web服务器(通常简称为“Apache”)在很多测试中都是Web服务器中的领军者。近10年来Apache都毫不费力的成为市场领头羊,世界上的站点中接近70%运行着Apache。Apache由Apache软件基金会(Apache Software Foundation)控制下的一个活跃的开发社区作为后援,同时它也广泛地受到各种组织和人们的支持,大到像IBM这样的巨头公司,小到个人顾问。
Apache的主要特点在于它的开放性和多样性。Apache源代码是完全开放的:不仅仅是当前版本,早期版本和处于开发阶段中的测试版本可以从apache.org网站上下载。除了项目管理相关的一些内容之外,Apache的开发过程也是开放的。Apache的多样性可以从它的用户社区和开发者社区体现出来:不管是每秒钟接收成千上万点击的高负载站点,还是复杂的、高度动态的网络应用,以及接入单独应用服务器的桥接器,甚至是简单的Web服务器,Apache都可以胜任。因此Apache融合了多种应用环境下的开发人员,这使得其可以成功的适用于广泛的应用环境。
但是这不意味着Apache采用了大而全的方法。Apache高度模块化的架构建立在一个很小的内核上,每一个用户都可以裁减这个内核来适应他自己的特殊需求。Apache可以作为一个单独的服务器,也可是作为其它系统的一个组件。最重要的是:它是一个灵活的、可扩展的应用平台。
本书面向的读者
本书是为使用Apache Web服务器的软件开发人员所写的。本书是自1999年三月之后第一本关于介绍Apache模块开发的书籍,也是目前为止第一本关于Apache 2开发的书籍。
本书的主要意图是成为一本深入介绍Apache模块开发的教科书。本书以C语言描述和示例,因此需要读者具有C语言的开发经验。但是Apache的架构和API由多种主流脚本环境共享:如mod_perl,mod_python以及C语言。除了第三章(介绍Apache可移植运行时库)之外,本书的绝大部分都适合使用比标准CGI更高级脚本语言的开发人员。
本书主要关注目前Apache的发行版本——Apache 2.2。Apache 2.2.0在2005年12月份发布,根据Apache的开发周期,它将会保留一段时间(之前的稳定版本2.0在2002年4月发布)。本书也非常适合依然使用Apache 2.0版本的开发人员(Apache架构和API将在所有的Apache2.x版本中保持不变),并期望在不久的将来依然有用。
本书的结构与涵盖的范围
本书包括12个章节和3个附录。
本书的第一章是非技术的概述,介绍了Apache的社会背景、文化背景以及法律背景。接下来的三章(第二章、第三章、第四章)从技术上对Apache进行展开的概述和介绍。第二章对Apache的架构和API进行技术上的概述。第三章介绍了Apache可移植运行时库(Apache Portable Runtime, APR)。Apache可移植运行时库是Apache非常重要的组件,它是一个半自治的库,用来把开发人员从C编程中的很多常规负担中解放出来。第四章讨论了适合Apache开发的一些通用编程技巧,以保证你开发的Apache模块在各种平台和环境下正常工作,保持安全,同时不给系统管理员带来麻烦。..
本书的中间部分从总体介绍转向专题介绍。第五章到第八章详细介绍了网页服务器核心功能的各种方面——也就是处理HTTP请求。大量现实存在的模块在这些章节内被开发出来。第五章以一个“Hello World”示例开始,让你可以了解如何把一个CGI的函数或者一个PHP的脚本改成一个Apache的模块。第六章介绍了HTTP请求处理流程,以及如何处理HTTP元数据。第七章深入介绍了如何标识用户并实施访问控制。第八章介绍了过滤链,以及如何转换内进(incoming)和外出(outgoing)数据;本章还包含一个深度的理论解释以及一些示例。第九章介绍了如何处理配置数据,并结束了对内核问题的探讨。
第十章和第十一章讨论了更高级的话题,这两章对于一些应用程序开发人员来说仍然是比较基础的。第十章着眼于API的实现机制,介绍了一个模块如何拓展API,或者为其它模块引入一个全新的API。第十一章介绍了DBD框架来支持SQL数据库应用程序。第十二章主要介绍了如何发现和解决故障以及一些调试技巧。
附录包括从网上复制过来的Apache法律文档。这些文档和本书密切相关,不过并不是作者写的。附录A是Apache许可。附录B包括一些贡献者许可协议(Contributor License Agreements,CLA),涵盖了知识产权的一些因素。附录C是权威的超文本传输协议(Hypertext Transfer Protocol, HTTP/1.1)标准,也就是RFC2616文档的全文,作为网络应用程序开发人员的参考文档。
本书没有涵盖的内容
本书主要关注应用程序开发,因此本书并没有大量介绍有关Apache的系统编程技术。特别指出的是,如果你的目的是想将Apache移植到一个目前还不支持的平台上,本书也仅仅指出了你需要更改的代码区域。
除此之外,我还要再说明一下:本书限定为只考虑Apache作为Web协议HTTP或者HTTPS的解析服务器。尽管Apache还可以支持其它协议,如支持FTP,SMTP协议的实现已经存在了,本书并没有对这些进行介绍。不过如果你想研究如何实现或者如何解析其它协议,那么本书对HTTP协议如何处理的介绍和概述会对你有所帮助。
本书相关资源
为本书特意编写的一些作为示例的模块以及一些类似的介绍性材料:
第五章:mod_helloworld
序言回到顶部↑
本书的出现恰合时宜。随着Web应用程序的发展,它需要更好的扩展性,那么我们需要一些方法使得代码运行的更快,资源消耗的更少,与Web服务器结合的更紧,部署的更加健壮。
过去使用Perl编写的CGI程序足以支持大型站点,但是最近几年我们已经转向mod_perl,PHP,Ruby on Rails以及其它的开发工具,以搭建更大型、更快捷和更廉价的方案。由于缺少权威的文档和示例程序来介绍Apache模块,在我们想把应用程序写成Apache模块时往往会遇到困难,这也是我们期望能够解决的问题。..
当你在在线聊天系统IRC中寻找如何编写Apache模块的文档时,得到的答案大都是查看现有的一些模块的代码,或者参考API文档。而这些文档往往都是比较陈旧的,大部分都是Apache1.3版本的。
当Nick告诉我他想写这本书时,我确信将购买第一本。我知道Nick是这个工作的最佳人选,因为他编写了大量的模块并撰写了很多有用的指南。
对我们这些通过实例和实验的方式学习效果最佳的人来说,这本书最合适不过了:它提供了大量的实例,并鼓励你去实践。你要保证在深入阅读之前准备好钟爱的编辑器和编译器,因为你将马上碰到示例代码,并想要进行实验。不要害怕面对实验。
你已经淘到了最合适的书。如何编写Apache模块方面,它将肯定成为事实上的标准文档。
Rich Bowen...
2006年9月
书摘回到顶部↑
1.2 Apache软件基金会:
Apache软件基金会(ASF)为一系列应用范围广泛的开源软件项目提供组织上、法律上和财政上的支持。Apache软件基金会建立了一整套框架来管理知识产权和财政捐献,同时,限制捐献者潜在的、合法的资源泄漏。通过精诚合作的项目开发流程,Apache项目交付了企业级的、免费获取的软件产品,吸引大量的社区用户使用。注重实效的Apache许可证(Apache License)使得无论是商业用户还是个人用户都易于部署Apache的产品。
Apache软件基金会的前身是Apache组织(Apache Group)。Apache软件基金会是一个非盈利的组织,基于成员制,以保证Apache项目在个人志愿者参与之外能够继续存在。如果个人承诺与开源软件开发项目合作,并不断地参与和贡献Apache软件基金会的项目,那么他(她)就有资格成为Apache软件基金会的成员。通过Apache基金会现有大部分成员的赞同和任命,个人才能成为软件基金会的成员。因此,Apache软件基金会为它所直接服务的社区所掌控,成员都为社区内的项目进行协作。
Apache软件基金会的成员按照基金会的规章制度,每隔一段时间选举一个董事会,管理基金会的组织事务,由董事会任命成员监管基金会的日常事务。社区亩以公开获取Apache基金会运作的记录。
……
【插图】








点击看大图





加载中...

