前言 Preface
本书的介绍
Apache Web服务器(通常简称为“Apache”)在很多测试中都是Web服务器中的领军者。近十年来,Apache都毫不费力地成为市场领头羊,世界上的站点中接近70%运行着Apache。Apache以Apache软件基金会(Apache Software Foundation,ASF)控制下的一个活跃的开发社区作为后援,同时它也广泛地受到大到像IBM这样的巨头公司,小到个人顾问等各种组织和人们的支持。
Apache的主要特点在于它的开放性和多样性。Apache源代码是完全开放的:不仅仅是当前版本,早期版本和处于开发阶段中的测试版本也都可以从apache.org网站上下载。除了与项目管理相关的一些内容之外,Apache的开发过程也是开放的。Apache的多样性可以从它的用户社区和开发者社区体现出来:不管是每秒钟接受成千上万点击的高负载站点,还是复杂的、高度动态的网络应用,以及接入单独应用服务器的桥接器,甚至是简单的Web服务器,Apache都可以胜任。因此,Apache融合了多种应用环境下的开发人员,这使得它可以被成功地应用于广泛的应用环境之中。
但是,这并不意味着Apache采用了大而全的方法。Apache高度模块化的架构建立在一个很小的内核上,每一个用户都可以裁减这个内核来适应他自己的特殊需求。Apache可以作为一个单独的服务器,也可以作为其他系统的一个组件,最重要的是,它是一个灵活的、可扩展的应用平台。
本书面向的读者
本书是为使用Apache Web服务器的软件开发人员所写的。本书是自1999年3月以来第一本关于Apache模块开发的书籍,也是目前为止第一本关于Apache 2开发的书籍。
本书写作的主要目的是成为一本深入介绍Apache模块开发的教科书。本书以C语言进行描述和演示示例,因此需要读者具有C语言的开发经验。但是Apache的架构和API由多种主流脚本环境共享,如mod_perl、mod_python及C语言。除了第3章(介绍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个附录。
本书的第1章是非技术性的概述,介绍了Apache的社会背景、文化背景及法律背景。接下来的3章(第2章、第3章、第4章)从技术上对Apache进行展开概述和介绍。其中第2章对Apache的架构和API进行技术上的概述。第3章介绍了Apache可移植运行时库(Apache Portable Runtime,APR)。Apache可移植运行时库是Apache非常重要的组件,它是一个半自治的库,用来把开发人员从C语言编程中的很多常规负担中解放出来。第4章讨论了适合Apache开发的一些通用编程技巧,以保证你开发的Apache模块能在各种平台和环境下正常工作,保证安全,同时不给系统管理员带来麻烦。
本书的中间部分从总体介绍转向专题介绍。第5章到第8章详细介绍了网页服务器核心功能的各种方面——即处理HTTP请求。大量现实存在的模块在这些章节内被开发出来。第5章以一个“Hello World”示例开始,让你可以了解如何把一个CGI的函数或者一个PHP的脚本改成一个Apache的模块。第6章介绍了HTTP请求处理流程,以及如何处理HTTP元数据。第7章深入介绍了如何标识用户并实施访问控制。第8章介绍了过滤链,以及如何转换内进(incoming)和外出(outgoing)数据;该章还包含一个深度的理论解释以及一些示例。第9章介绍了如何处理配置数据,并结束了对内核问题的探讨。
第10章和第11章讨论了更高级的话题,这两章对于一些应用程序开发人员来说仍然是比较基础的。第10章着眼于API的实现机制,介绍了一个模块如何拓展API,或者为其他模块引入一个全新的API。第11章介绍了DBD框架来支持SQL数据库应用程序。第12章主要介绍了如何发现和解决故障及一些调试技巧。
附录包括从网上复制的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协议如何处理的介绍和概述会对你有所帮助。
本书相关资源
特意为本书编写的一些可作为示例的模块,以及一些类似的介绍性材料:
·第5章:mod_helloworld
·第6章:mod_choice(源自一个非开放源代码的模块)
·第7章:mod_authnz_day
·第8章:mod_txt(最初写于www.apachetutor.org)
这些模块可以从www.apachetutor.org下载。
所有的这些模块都是从Apache的源代码中摘取出来的。除了一些参考的URL之外,所有的模块都是从Apache的标准发布版(httpd.apache.org)或者作者的公司站点(apache.webthing.com)中获取的。需要注意的是,对本书中的任何源代码的使用均不需要经过许可,你可以拷贝这些代码或作为私人用途,不过你要参考这些模块的代码最初的许可协议。
联系博文视点
您可以通过如下方式与本书的出版方取得联系。
投稿信箱:bvtougao@gmail.com
北京博文视点资讯有限公司(武汉分部)
湖北省 武汉市 洪山区 吴家湾 邮科院路特1号 湖北信息产业科技大厦1402室
邮政编码:430074
电话: (027)87690813 传真:(027)87690595
若您希望参加博文视点的有奖读者调查,或对写作和翻译感兴趣,欢迎您访问:
关于本书的勘误、资源下载及博文视点的最新书讯,欢迎您访问博文视点官方博客:
| 回书目 下一节 |
|
· 系统分析师自测获奖名.. · Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. · 08年3月各大网上书店及.. |
· 网络工程师模拟测试获.. · 全国计算机软考考试指.. · 3月24日WCF聊天活动 积.. · 全国计算机等级考试四.. · 软件项目估计:第2版 · 系统分析师基础知识自.. |
|
||||
| · 2008年上半年全国软考.. · 微软出价446亿美元收购.. · 华为员工自杀频频拷问.. · 三层交换技术专题 · ARP攻击防范与解决方案 · 隐私保护技术探讨 · 反垃圾邮件技术应用 · 龙芯要做中国的“奔腾” |
· Windows Server 2008专.. · AMD Phenom三核处理器.. · 路由器设置与口令恢复 · 微软Forefront企业安全.. · LAMP技术精解 · 企业数据恢复指南 · 技术人求职简历完备手册 · Apache技术专题 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 中间件应用技术专题 · 三层交换技术专题 |
· SQL Server入门到精通 · Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · SOA 面向服务架构 · PHP开发应用手册 · 企业数据恢复指南 |
|||
|
||||
| · iSCSI应用与发展 · 中间件应用技术专题 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 |
· Apache技术专题 · RAID——磁盘阵列基础 · 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · ADSL应用面面俱到 · ADSL应用面面俱到 · 反垃圾邮件技术应用 |
|||