首页 > Apache学习路线

Apache学习路线

参考资料:

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)编写一个关键字高亮过滤器和题头题尾添加过滤器

转载于:https://www.cnblogs.com/steven_oyj/archive/2010/05/29/1747028.html

更多相关:

  • 1. 将 Apache24 解压到 C 盘根目录2. 修改配置文件 Apacheconfhttpd.conf 在大约 39 行处,将文件路径修改为 Apache 目录3. 打开 CMD 命令提示符(用管理员权限运行) 在桌面右键创建快捷方式,输入 cmd,下一步,完成 选中 cmd 快捷方式,右键 - 使用管理员权限运行 命令:第一条...

  • 搭建Mantis 缺陷管理系统 By Snooper 错误必有!欢迎指正! 什么是Mantis MantisBT is a free popular web-based bugtracking system (feature list). It is written in the PHP scripting language and...

  • 1.卷积神经网络介绍 **卷积神经网络(Convolutional Neural Network,CNN)**是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。 虽然上图中显示的全连接神经网络结构和卷积神经网络的结构直观上差异比较大,但他们的整体架构是非常相似的。从上图可以看出,卷积神...

  • 1 模块简介在python中常见的模块有三种,在python解释器中的内置模块,第三方模块和自定义模块。模块的有使用python编写的文件,有已被编译为共享库或DLL的C或C++扩展,也有使用C编写连接到python解释器的内置模块和把一些列模块组织起来的文件(文件包)。python使用模块内置模块,第三方模块以及内置模块,是pyth...

  • 简介 OpenCV是一个C++库,用于实时处理计算机视觉方面的问题,涵盖了很多计算机视觉领域的模块。  OpenCV有两个Python接口,老版本的cv模块使用OpenCV内置的数据类型,新版本的cv2模块使用NumPy数组。 对于新版本的模块,可以通过下面方式导入: import cv2 而老版本的模块则通过下面方式导入: i...

  • 一. 背景 在 CMakeLists.txt 中,某模块 A 通过 add_subdirectory 引入模块 B ,模块 B 通过 add_subdirectory 引入模块 C。模块 C 里面本身就是一个开源的动态库,比如 libtask。目的想要将 C 模块打包成一个 Target ,以便在 A 模块中中使用方便。 二. 旧...

  • 一、python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include 引入math.h这个头文件,否则是无法正常进行调用的。 那么在Python中,如果要引用一些其他的函数,该怎么处理呢? 在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Ja...

  •  对于一些大型的项目来说,将项目的各个模块理清并进行管理,便于后续项目的维护,使用maven管理是很方便的,它可以很好的构建模块来设计项目的整体结构,对一些小型的项目不建议使用 1、新建父maven模块(idea版本为2017.2) 选择maven类型 点击next,填写GroupId和AtifactId 点击next 确认工...