基于Apache源代码的Web应用服务器的体系结构分析 论文.docx

上传人:b****5 文档编号:2886459 上传时间:2022-11-16 格式:DOCX 页数:43 大小:228.44KB
下载 相关 举报
基于Apache源代码的Web应用服务器的体系结构分析 论文.docx_第1页
第1页 / 共43页
基于Apache源代码的Web应用服务器的体系结构分析 论文.docx_第2页
第2页 / 共43页
基于Apache源代码的Web应用服务器的体系结构分析 论文.docx_第3页
第3页 / 共43页
基于Apache源代码的Web应用服务器的体系结构分析 论文.docx_第4页
第4页 / 共43页
基于Apache源代码的Web应用服务器的体系结构分析 论文.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

基于Apache源代码的Web应用服务器的体系结构分析 论文.docx

《基于Apache源代码的Web应用服务器的体系结构分析 论文.docx》由会员分享,可在线阅读,更多相关《基于Apache源代码的Web应用服务器的体系结构分析 论文.docx(43页珍藏版)》请在冰豆网上搜索。

基于Apache源代码的Web应用服务器的体系结构分析 论文.docx

基于Apache源代码的Web应用服务器的体系结构分析论文

 

毕业设计论文

 

 

专业班级:

计算机科学与技术·计本061

学生姓名:

唐宇松

指导教师:

朱克敌

密级:

内部

 

基于Apache源代码的Web应用服

务器的体系结构分析

Analysingthearchitectureofthe

Webapplicationserverbasedon

Apachesourcecode

 

系别名称:

信息工程系

专业班级:

计算机科学与技术·计本061

学生姓名:

唐宇松

学号:

2006403121

指导教师:

朱克敌

摘要

如果说没有Apache就没有Intemet可能有些夸张,但至少可以说没有Apache,互联网就不会发展得这么快。

根据互联网研究公司NetCraft的统计,多年来Apache一直稳居Web服务器市场的头把交椅,至今仍占据超过50%的市场份额。

就整个互联网来说,Apache仍然是最重要的软件之一。

本论文通过分析Apache服务器体系结构中层次结构和主程序main.c文件源代码,了解Apache服务器运行过程及其运行原理。

然后主要分析了Apache服务器中主要的三个重要运行模块及其代码:

用于模块加载的三个主要模块,用于指令的指令处理模块,最后是挂钩处理的五个重要组成部分。

通过分析它们,为了给未来希望编写第三方模块的人提供借鉴和相关参考。

关键词Apache服务器,模块加载,指令处理模块,挂钩

Abstract

IfthereisnoApachewouldnotIntemetmaybesomeexaggeration,butatleastyoucansaythereisnoApache,theInternetwouldnothavedevelopedsofast.AccordingtoInternetresearchfirmNetCraftstatistics,overtheyearshasbeenoneofApacheWebservermarket,thetopspot,stillholdsmorethan50%marketshare.ForthewholeInternet,Apachestillisoneofthemostimportantsoftware.

ThisdissertationanalyzesthehierarchyofApacheserverandthemainprogrammain.csourcecodefile.LearnoperatingprocessandprincipleoftheApacheserver.ThenthemainanalysisofthemainApacheservertorunthethreemajormodulesandthecode:

Thethreemainmodulesoftheloadmodule,thecommandprocessingmoduleofcommand,thefiveimportantpartofthehook.Byanalyzingthem,inordertothepeoplewhohopetowritethethird-partymodulesinthefutureprovidereferenceandrelatedreference.

KeywordsApacheserver,loadmodule,commandprocessingmodule,hook

目录

摘要I

AbstractII

第1章概述1

1.1课题研究的意义1

1.2Apache功能1

1.2.1Apache虚拟主机1

1.2.2持续连接1

1.2.3缓存2

1.2.4访问控制和安全2

第2章课题研究相关技术3

2.1HTTP协议及HTTP服务器的工作原理3

2.1.1HTTP协议简介3

2.1.2HTTP服务器3

2.2MVC三层体系结构以及各个层次之间的依赖关系4

2.2.1MVC三层体系结构4

2.2.2MVC三层体系结构之间的依赖关系4

第3章Apache体系结构5

3.1Apache目录5

3.2Apache层次结构6

3.2.1操作系统支持层7

3.2.2可移植运行库层7

3.2.3核心功能层7

3.2.4可选功能层7

3.3Apache核心功能层8

3.3.1核心与可选模块的关系8

3.3.2核心组件8

3.4Apache运行流程9

3.4.1Apache启动过程9

3.4.2HTTP连接处理9

3.4.3请求报文读取9

3.4.4请求处理10

3.4.5内容生成11

3.5主程序main11

3.5.1主程序概要11

3.5.2主程序细节11

第4章Apache模块化体系结构20

4.1Apache模块概述20

4.2模块的加载20

4.2.1静态模块加载20

4.2.2动态模块加载23

4.2.3模块卸载27

4.3指令表28

4.3.1指令表概述28

4.3.2指令处理函数28

4.4挂钩(HOOK)29

4.4.1声明挂钩29

4.4.2挂钩数组声明31

4.4.3挂钩结构31

4.4.4挂钩函数注册32

4.4.5使用挂钩32

总结35

致谢36

参考文献37

第1章概述

1.1课题研究的意义

众所皆知,Apache良好的模块化架构设计已经成为经典的服务器架构——易于扩展、易于维护。

几乎每一个程序员都可以从Apache的架构中吸取到丰富的营养。

虽然Apache的代码非常优美,架构层次非常清晰,但是在缺乏资料的情况下,开发人员想在短时间内读懂Apache架构和内部细节并不是一件容易的事情。

在陷入迷茫和一头雾水之后,他们可能就会选择放弃,从而与Apache的优美架构失之交臂。

Apache是世界使用排名第一的Web服务器软件。

它可以运行在几乎所有广泛使用的计算机上。

所以越来越多的人使用Apache服务器。

因此,对于Apache使用者来说,理解和掌握Apache运行原理及运行体系是很重要的。

本论文通过分析ApacheWeb服务器源代码理解和掌握ApacheWeb服务器源代码体系结构,使读者能够更加方便快捷的阅读掌握ApacheWeb服务器源代码体系结构,理解ApacheWeb服务器的机制体系和运行原理。

1.2Apache功能

1.2.1Apache虚拟主机

虚拟主机是指一个机器上运行多个Web站点的机制。

虚拟主机的实现包括以下三种方式。

(1)Web服务器中配备多个IP地址,并且每一个逻辑Web服务器使用一个IP地址。

(2)Web服务器只有一个IP地址,不同的Web服务器使用不同的端口进行侦听。

(3)Web服务器只有一个IP地址,同多个域名被映射到该IP地址上。

Apache中支持上面三个方式的虚拟主机,而且通过mod_vhost_alias模块,可以使得类似的虚拟主机配置起来非常容易,减轻了管理者的负担。

1.2.2持续连接

所谓持续连接,就是某个连接再打开后不立即关闭,而是继续使用,后续的数据传输都基于该连接。

因此对于某一个Web界面来说,不管其中包含了视频还是图片等,都是基于该连接传送的。

为了使用持续连接,客户端和服务器之间会使用“Connection:

keep-alive”请求域;默认情况下连接就是持续连接,除非进行了特殊的指定。

如果客户端和服务器端的某一方不愿意使用持续连接,它只需要设置“Connection:

close”请求域,另一方面一旦接收到“Connection:

close”,就会在当前请求处理完毕后关闭当前请求。

Apache中提供了配置指令,允许限制同一连接上的处理请求的数目,以及处理超时的时间,一旦超过该处理时间,所有的连接都将关闭。

1.2.3缓存

HTTP通常位于分布式信息系统中,在这些系统中,可以通过采用缓存应答的方式改善系统的性能。

HTTP/1.1协议中包含了大量的元素,尽可能地使缓存产生更好的效果。

通过缓存,可以加快客户端的响应速度。

HTTP/1.1协议中缓存的设计目标就是在很多情况下见地发送请求的必要性,以及在很多其他情况下降低发送完整应答的必要性。

前者就使你少了很多操作所需要的网络回合的数目——它使用过期机制来实现这一目的。

后者减少了网络带宽需求——通过验证机制达到这一目的。

1.2.4访问控制和安全

对于Web站点上存在的一些私有文件,我们必须确保这些文件在绝对的受控范围之内,通过认证、授权和访问控制等一系列的安全措施,可以确保受控资料的安全性。

认证(Authentication)、授权(Authorization)及账户确认(Accounting)三者合起来称为AAA模块。

第2章课题研究相关技术

Apache的所有源代码都是使用C语言开发的。

因此,如果你不熟悉C语言,则最好不要阅读本论文。

如果你熟悉C++,则会更好。

Apache中的很多设计都借鉴了C++的一些思想,了解C++,会让你更容易理解这些设计。

本论文的Apache代码基于2.2.8版本,读者在阅读之前请登陆Apache下载网址http:

//httpd.apache.org下载一份代码。

对于阅读和分析代码,笔者推荐使用的工具是SourceInsight。

理解代码的最好方式就是跟踪和调试。

因此勤于调试能有助于你对Apache源代码和本书内容的理解。

2.1HTTP协议及HTTP服务器的工作原理

2.1.1HTTP协议简介

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。

它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。

目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(NextGenerationofHTTP)的建议已经提出。

HTTP协议定义服务器端和客户端之间文件传输的沟通方式。

目前HTTP协议的版本是Http1.1。

RFC2616描述了HTTP协议的具体信息。

这个协议已经成为浏览器和Web站点之间的标准。

当访问者点击一个超链接的时候,将会给浏览器提交一个URL地址。

通过这个URL地址,浏览器便知道去链接那个网站并去取得具体的页面文件(也可能是一张图片,一个pdf文件)。

HTTP工作的基础就是,连接一个服务器并开始传输文件到浏览器。

最基本的过程是:

(1)客户端连接一个主机

(2)服务器接收连接

(3)客户端请求一个文件

(4)服务器发送一个应答

2.1.2HTTP服务器

整个Web可以分为俩个重要的组成部分:

客户端和服务器端。

当客户端需要请求特定的URI时,它将与服务器建立连接,并通过HTTP协议发送请求至Web服务器。

Web服务器接收到客户端的请求之后将生成响应内容,同时将该响应内容通过连接返回给客户端。

正常情况下,一个HTTP服务器会等待浏览器发送的请求,并根据HTTP协议进行响应。

客户端总是请求某个特定的文档。

服务器将

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1