参考资料:
1、《Apache源代码全景分析》
2、《鸟哥服务器架设篇》
一、不同的开发人员应该关注的知识点
Apache管理员 配置文件、配置指令
模块开发人员 全部内容
服务器开发人员 MPM并发处理框架
普通人员 模块化体系结构
二、需要的技术基础
1、C、C++
2、了解HTTP协议相关的内容
3、了解Apache配置文件和配置指令体系(因为Apache启动的时候将构建配置树,在对请求处理的时候将读取配置信息)
三、Apache体系结构与核心模块的构建
1、WEB服务器概述
(1)Apache服务器的发展
(2)HTTP服务器的工作方式
(3)Apache服务器的功能
(4)Apache服务器的使用(LAMP安装、配置)
2、Apache的三层体系结构
(1)三层体系结构
(2)核心功能层的各个重要组件及相互关系
(3)Apache的运行流程及主函数的实现细节
3、配置文件管理
配置文件管理是Apache的基础核心模块
(1)配置文件中的指令概念(上下文、参数)
(2)Apache中对指令的实现
(3)Apache中对配置文件的读取,及指令的内存组织方式,调用执行方式
(4)新的指令配置段
4、Apache模块化体系结构
Apache方便地进行第三方扩展及裁剪
(1)模块数据结构
(2)模块结构中成员的上下文(指令表、挂钩、配置结构操作指针)
(3)核心模块加载过程
(4)Apache模块通信的各种策略(简单通信方式、可选函数通信方式、提供者API方式)
(5)Apache常用模块
5、多任务并发处理(重点!!!)
Apache同时处理大量的并发连接,得益于Apache的MPM模块
MPM将网络连接相关的处理独立成为模块的形式,这样不同的平台就可以使用不同的并发模型,从而达到最优的效果
(1)Prefork MPM
(2)Worker MPM
(3)WinNT MPM
6、网络连接(连接处理相关的内容)
(1)连接处理的4个阶段
(2)等待连接阶段的创建套接字和侦听套接字的流程
(3)连接处理阶段的创建连接和读取连接的细节
(4)HTTP请求读取的细节(HTTP请求行、请求头及请求报文体)
7、过滤器
对于客户端和核心模块之间的输入和输出的内容进行转换处理
(1)过滤器的基本概念
(2)过滤器在核心的组织结构
(3)过滤器的使用及智能过滤器的概念和使用
8、存储端和存储段组
当数据在过滤器中流动传递的时候,数据是以存储段组的形式组织的。每一个存储段组包含多个存储段,每一个存储段是一种数据类型的抽象
(1)核心提供的11种存储段类型及它们的操作接口
(2)存储段的操作细节和内部实现细节
(3)存储段组与过滤器的结合使用方式
9、常用过滤器
(1)网络处理的CORE_IN、CORE过滤器
(2)Chunk编码的Chunk过滤器
(3)编写一个关键字高亮过滤器和题头题尾添加过滤器