ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:228.44KB ,
资源ID:2886459      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2886459.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于Apache源代码的Web应用服务器的体系结构分析 论文.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、基于Apache源代码的Web应用服务器的体系结构分析 论文毕 业 设 计 论 文 专业班级: 计算机科学与技术计本061 学生姓名: 唐宇松 指导教师: 朱克敌 密级:内部基于Apache源代码的Web应用服务器的体系结构分析Analysing the architecture of theWeb application server based onApache source code系别名称: 信息工程系专业班级: 计算机科学与技术计本061学生姓名: 唐宇松学 号: 2006403121指导教师: 朱克敌摘 要如果说没有Apache就没有Intemet可能有些夸张,但至少可以说没有Ap

2、ache,互联网就不会发展得这么快。根据互联网研究公司NetCraft的统计,多年来Apache一直稳居Web服务器市场的头把交椅,至今仍占据超过50的市场份额。就整个互联网来说,Apache仍然是最重要的软件之一。本论文通过分析Apache服务器体系结构中层次结构和主程序main.c文件源代码,了解Apache服务器运行过程及其运行原理。然后主要分析了Apache服务器中主要的三个重要运行模块及其代码:用于模块加载的三个主要模块,用于指令的指令处理模块,最后是挂钩处理的五个重要组成部分。通过分析它们,为了给未来希望编写第三方模块的人提供借鉴和相关参考。关键词 Apache服务器,模块加载,指

3、令处理模块,挂钩AbstractIf there is no Apache would not Intemet may be some exaggeration, but at least you can say there is no Apache, the Internet would not have developed so fast. According to Internet research firm NetCraft statistics, over the years has been one of Apache Web server market, the top spot

4、, still holds more than 50% market share. For the whole Internet, Apache still is one of the most important software.This dissertation analyzes the hierarchy of Apache server and the main program main.c source code file. Learn operating process and principle of the Apache server. Then the main analy

5、sis of the main Apache server to run the three major modules and the code: The three main modules of the load module, the command processing module of command, the five important part of the hook. By analyzing them, in order to the people who hope to write the third-party modules in the future provi

6、de reference and related reference.Keywords Apache server, load module, command processing module, hook目 录摘 要 IAbstract II第1章 概 述 11.1 课题研究的意义 11.2 Apache功能 11.2.1 Apache虚拟主机 11.2.2 持续连接 11.2.3 缓存 21.2.4 访问控制和安全 2第2章 课题研究相关技术 32.1 HTTP协议及HTTP服务器的工作原理 32.1.1 HTTP协议简介 32.1.2 HTTP服务器 32.2 MVC三层体系结构以及各个

7、层次之间的依赖关系 42.2.1 MVC三层体系结构 42.2.2 MVC三层体系结构之间的依赖关系 4第3章 Apache体系结构 53.1 Apache目录 53.2 Apache层次结构 63.2.1 操作系统支持层 73.2.2 可移植运行库层 73.2.3 核心功能层 73.2.4 可选功能层 73.3 Apache核心功能层 83.3.1 核心与可选模块的关系 83.3.2 核心组件 83.4 Apache运行流程 93.4.1 Apache启动过程 93.4.2 HTTP连接处理 93.4.3 请求报文读取 93.4.4 请求处理 103.4.5 内容生成 113.5 主程序ma

8、in 113.5.1 主程序概要 113.5.2 主程序细节 11第4章 Apache模块化体系结构 204.1 Apache模块概述 204.2 模块的加载 204.2.1 静态模块加载 204.2.2 动态模块加载 234.2.3 模块卸载 274.3 指令表 284.3.1 指令表概述 284.3.2 指令处理函数 284.4 挂钩(HOOK) 294.4.1 声明挂钩 294.4.2 挂钩数组声明 314.4.3 挂钩结构 314.4.4 挂钩函数注册 324.4.5 使用挂钩 32总 结 35致 谢 36参考文献 37第1章 概 述1.1 课题研究的意义众所皆知,Apache良好的模

9、块化架构设计已经成为经典的服务器架构易于扩展、易于维护。几乎每一个程序员都可以从Apache的架构中吸取到丰富的营养。虽然Apache的代码非常优美,架构层次非常清晰,但是在缺乏资料的情况下,开发人员想在短时间内读懂Apache架构和内部细节并不是一件容易的事情。在陷入迷茫和一头雾水之后,他们可能就会选择放弃,从而与Apache的优美架构失之交臂。Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机上。 所以越来越多的人使用Apache服务器。因此,对于Apache使用者来说,理解和掌握Apache运行原理及运行体系是很重要的。本论文通过分析Apache We

10、b 服务器源代码理解和掌握Apache Web服务器源代码体系结构,使读者能够更加方便快捷的阅读掌握Apache Web服务器源代码体系结构,理解Apache Web服务器的机制体系和运行原理。 1.2 Apache功能1.2.1 Apache虚拟主机 虚拟主机是指一个机器上运行多个Web站点的机制。虚拟主机的实现包括以下三种方式。(1) Web服务器中配备多个IP地址,并且每一个逻辑Web服务器使用一个IP地址。(2) Web服务器只有一个IP地址,不同的Web服务器使用不同的端口进行侦听。(3) Web服务器只有一个IP地址,同多个域名被映射到该IP地址上。Apache中支持上面三个方式的

11、虚拟主机,而且通过mod_vhost_alias模块,可以使得类似的虚拟主机配置起来非常容易,减轻了管理者的负担。1.2.2 持续连接所谓持续连接,就是某个连接再打开后不立即关闭,而是继续使用,后续的数据传输都基于该连接。因此对于某一个Web界面来说,不管其中包含了视频还是图片等,都是基于该连接传送的。为了使用持续连接,客户端和服务器之间会使用“Connection:keep-alive”请求域;默认情况下连接就是持续连接,除非进行了特殊的指定。如果客户端和服务器端的某一方不愿意使用持续连接,它只需要设置“Connection:close”请求域,另一方面一旦接收到“Connection:cl

12、ose”,就会在当前请求处理完毕后关闭当前请求。Apache中提供了配置指令,允许限制同一连接上的处理请求的数目,以及处理超时的时间,一旦超过该处理时间,所有的连接都将关闭。1.2.3 缓存HTTP通常位于分布式信息系统中,在这些系统中,可以通过采用缓存应答的方式改善系统的性能。HTTP/1.1协议中包含了大量的元素,尽可能地使缓存产生更好的效果。通过缓存,可以加快客户端的响应速度。HTTP/1.1协议中缓存的设计目标就是在很多情况下见地发送请求的必要性,以及在很多其他情况下降低发送完整应答的必要性。前者就使你少了很多操作所需要的网络回合的数目它使用过期机制来实现这一目的。后者减少了网络带宽需

13、求通过验证机制达到这一目的。1.2.4 访问控制和安全 对于Web站点上存在的一些私有文件,我们必须确保这些文件在绝对的受控范围之内,通过认证、授权和访问控制等一系列的安全措施,可以确保受控资料的安全性。认证(Authentication)、授权(Authorization)及账户确认(Accounting)三者合起来称为AAA模块。第2章 课题研究相关技术Apache的所有源代码都是使用C语言开发的。因此,如果你不熟悉C语言,则最好不要阅读本论文。如果你熟悉C+,则会更好。Apache中的很多设计都借鉴了C+的一些思想,了解C+,会让你更容易理解这些设计。 本论文的Apache代码基于2.2

14、.8版本,读者在阅读之前请登陆Apache 下载网址http:/httpd.apache.org下载一份代码。对于阅读和分析代码,笔者推荐使用的工具是SourceInsight。 理解代码的最好方式就是跟踪和调试。因此勤于调试能有助于你对Apache源代码和本书内容的理解。 2.1 HTTP协议及HTTP服务器的工作原理2.1.1 HTTP协议简介HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而

15、且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议定义服务器端和客户端之间文件传输的沟通方式。目前HTTP协议的版本是Http1.1。RFC 2616描述了HTTP协议的具体信息。 这个协议已经成为浏览器和Web站点之间的标准。当访问者点击一个超链接的时候,将会给浏览器提交一个URL地址。通过这个URL地址,浏览器便知道去链接那个网站并去取得具体的页面文件(也可能是一张图片,一个pdf文件)。 HTTP工作的基础就是,连接一个服务器并开始传输文件到浏览器。 最基本的过程是:(1)客户端连接一个主机 (2)服务器接收连接(3)客户端请求一个文件 (4)服务器发送一个应答2.1.2 HTTP服务器整个Web可以分为俩个重要的组成部分:客户端和服务器端。当客户端需要请求特定的URI时,它将与服务器建立连接,并通过HTTP协议发送请求至Web服务器。Web服务器接收到客户端的请求之后将生成响应内容,同时将该响应内容通过连接返回给客户端。正常情况下,一个HTTP服务器会等待浏览器发送的请求,并根据HTTP协议进行响应。客户端总是请求某个特定的文档。服务器将

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

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