• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
导航菜单
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx
您的位置:首页 > 服务器 >Apache > PHP底层深度探索(2)---Apache运行机制剖析

PHP底层深度探索(2)---Apache运行机制剖析

作者:网友 字体:[增加 减小] 来源:互联网

本文主要包含php底层,php底层架构,php底层开发语言,apache php,apache php mysql等服务器相关知识,网友希望可以进行参考

二、Apache运行机制剖析

l         B/S交互过程

浏览器(Browser)和服务器(Web Server)的交互过程:

 

 

 

1、  浏览器向服务器发出HTTP请求(Request)。

2、  服务器收到浏览器的请求数据,经过分析处理,向浏览器输出响应数据(Response)。

3、  浏览器收到服务器的响应数据,经过分析处理,将最终结果显示在浏览器中。

 下图是一份浏览器请求数据和服务器响应数据的快照:

 

 

关于浏览器和服务器数据交互过程非常简单,很容易理解。我想从事Web开发的人员都很清楚,在此不再赘述,仅供参考。

 

l         Apache概述

Apache是目前世界上使用最为广泛的一种Web Server,它以跨平台、高效和稳定而闻名。按照去年官方统计的数据,Apache服务器的装机量占该市场60%以上的份额。尤其是在X(Unix/Linux)平台上,Apache是最常见的选择。其它的Web Server产品,比如IIS,只能运行在Windows平台上,是基于微软.Net架构技术的不二选择。

Apache并不是没有缺点,它最为诟病的一点就是变得越来越重,被普遍认为是重量级的WebServer。所以,近年来又涌现出了很多轻量级的替代产品,比如lighttpd,nginx等等,这些WebServer的优点是运行效率很高,但缺点也很明显,成熟度往往要低于Apache,通常只能用于某些特定场合,。

 

l         Apache组件逻辑图

Apache是基于模块化设计的,总体上看起来代码的可读性高于php的代码,它的核心代码并不多,大多数的功能都被分散到各个模块中,各个模块在系统启动的时候按需载入。你如果想要阅读Apache的源代码,建议你直接从main.c文件读起,系统最主要的处理逻辑都包含在里面。MPM(Multi -Processing Modules,多重处理模块)是Apache的核心组件之一,Apache通过MPM来使用操作系统的资源,对进程和线程池进行管理。Apache为了能够获得最好的运行性能,针对不同的平台(Unix/Linux、Window)做了优化,为不同的平台提供了不同的MPM,用户可以根据实际情况进行选择,其中最常使用的MPM有prefork和worker两种。至于您的服务器正以哪种方式运行,取决于安装Apache过程中指定的MPM编译参数,在X系统上默认的编译参数为prefork。由于大多数的Unix都不支持真正的线程,所以采用了预派生子进程(prefork)方式,象Windows或者Solaris这些支持线程的平台,基于多进程多线程混合的worker模式是一种不错的选择。对此感兴趣的同学可以阅读有关资料,此处不再多讲。Apache中还有一个重要的组件就是APR(Apache portable Runtime Library),即Apache可移植运行库,它是一个对操作系统调用的抽象库,用来实现Apache内部组件对操作系统的使用,提高系统的可移植性。Apache对于php的解析,就是通过众多Module中的php Module来完成的。

 

 

Apache的逻辑构成以及与操作系统的关系

 

l         Apache的生命周期

这一节的内容会与php模块的载入有关,您可以略微关注一下。以下是Apache的生命周期(prefork模式)示意图。

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PHP底层深度探索(2)---Apache运行机制剖析
  • php底层深度探索(3) ---Apache启动阶段分析
  • php底层深度探索(4) ---Apache运行阶段分析

相关文章

  • Apache Tomcat 5.5.28发布
  • Apache Commons Lang 3.3.2 发布
  • Apache基金会迎来10周年生日
  • Apache 2.2.14发布,修正了三个漏洞
  • Apache十岁:钱非万能 无私贡献促发展
  • Apache日志分析,Petit 1.0.0 发布
  • Apache OpenOffice 4.1.0 正式版发布
  • Mozilla 复查其开源协议或与Apache 协议兼容
  • PHP底层深度探索(2)---Apache运行机制剖析
  • Apache Cayenne 3.0 Beta1 发布

文章分类

  • windows
  • 服务器硬件
  • 服务器运维
  • 云计算
  • 虚拟化
  • IIS教程
  • Linux
  • Apache
  • Ftp
  • DNS
  • Nginx

最近更新的内容

    • Subversion成为Apache顶级项目
    • PHP底层深度探索(2)---Apache运行机制剖析
    • Apache Cayenne 3.0 Beta1 发布
    • Apache将中止1.3和2.0版支持全力推广2.2.x
    • Apache2.2版本的编译安装
    • Apache Commons Lang 3.3.2 发布
    • Apache小窍门技巧5则
    • Apache Ant 1.8.0 RC1 版本发布
    • Apache日志分析,Petit 1.0.0 发布
    • Apache十岁:钱非万能 无私贡献促发展

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有