节选自《Apache源代码解析-基于Apache0.6.5》前言。
这本书主要针对在校计算机专业大三及以上年级学生阅读,具有同等学历或对 Apache 项目本身感兴趣者亦为潜在之读者。
每年新的毕业生找工作时最常被问到的问题是: “ 你有工作经验吗? ” 。即便不被问到这个问题,招聘者也首先会在应聘简历中搜寻此子之工作经验。而何谓工作经验。鄙人认为有二。
其一,合作经验。即与其他个体交流、合作之能力。做为社会人,每个个体因为各种原因难免要跟社会上的各式人等打交道,小到见面打招呼,上课占位置,大到管理集体,制定规划。老子曰:治大国若烹小鲜,此万事相通者也。
其二,项目经验。这对一个刚毕业的学生来说相对比较困难。也许有人不同意: “ 兄弟毕业时也有过毕业设计的 ” 。不可否认,每人毕业时都几乎有毕业设计,且美 其名曰 “ 某某系统 ” ,然而,每年毕业生何止数十万,又有几个所谓的 “ 系统 ” 是真正从用户的需求出发,按照用户的要求做出来的?又有几个所谓的系统是一个真 正的 “ 系统 ” 功能?无非是答辩完成便束之高阁、无人问津罢了。
俗话说学以致用,实际上只有在用的过程中才能对所学加深理解,才能巩固所学。现在大学课程都是针对纯理论的东西进行教授,除了毕业设计时那个所谓的 “ 系统 ” 外,老师很少会指导学生去研究某个课题,尤其是专、本科教育。
这样带来的后果是什么呢?为了得到所谓的工作经验,好多学生毕业后去参加培训,花钱上班,甚至于上学的最后一年课程的内容就是花钱上班,何其悲哀!
这些年,随着网络的兴起,人们的目光开始聚焦在互联网上。做为将来或现任的程序员,都开始琢磨着怎么开发一个网站,都开始研究 PHP 、 ASP 、 JSP 甚至 于 JAVASCRIPT 了。这很好,不过也导致了一个问题,就是这样的程序员越来越多,且需要掌握的技术越来越多,从 J2EE 每年新出和淘汰的技术名词上 就可见一斑。当然,待遇嘛,可能距离期望越来越远了。
其实,此时的你,有另外一个选择。
一个网站,除了前台页面的表现之外,还需要一个东西来支撑,把程序员做好的效果传递给客户端,并最终在客户端浏览器上体现,这个东西就是 Web 服务器。
Apache 是目前应用最广的 web 服务器,由于它是开源的,使用者可以根据自己的需要对源代码进行调整以适应自己的特定需求。
但并不是说任何人都可以对其进行优化,前提是你要读懂它。
本书要求读者具有 C 语言的基础,如果没有,建议您看看《 C 程序设计语言》。另外需要知道在 Linux 系统下进行 C 语言开发的知识,至少看过一本相关的书籍。
本书从 Apache 的早期版本 ——0.6.5 源代码入手,以调用顺序为主线,以模块为单位,分十三个章节对 Apache 的源代码进行了讲解。对每个模块的 讲解分三部分:首先说明 Apache 这个模块达到的效果;然后说明通过怎样的设置让 Apache 达到这样的效果;最后通过对源代码的注释,让读者了解 Apache 怎样在源代码级实现这个功能。做到知其然,知其所以然。
节选自《Apache源代码解析-基于Apache0.6.5》前言。