《hp底层深度探索》word版

《hp底层深度探索》word版

ID:22688709

大小:306.51 KB

页数:12页

时间:2018-10-30

《hp底层深度探索》word版_第1页
《hp底层深度探索》word版_第2页
《hp底层深度探索》word版_第3页
《hp底层深度探索》word版_第4页
《hp底层深度探索》word版_第5页
资源描述:

《《hp底层深度探索》word版》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、http://wangzebin.blog.51cto.com/653300/132272在开始这个专题之前,先说一点题外话。大多数人学习编程语言的时候,首先关注的是这种语言的语法及其常用函数。反正,我学习C,Java,Php等语言就是按照这样的方式开始的。一般情况下,这个阶段需要一个月左右的时间就会完全掌握,并能基本熟练地使用。对于已有经验的同学,可能时间更短。其实各种语言的语法和常用函数都差别不大,有很多相通的地方。如果您在学习一种编程语言的时候,拿一些真正的项目任务作为实践,效果更佳,实践远胜于理论。我们在掌握了一门编程语言之后,又会向两个方向发展:一个方向是向上延伸,从事系统

2、框架的探索;另一方向是向下延伸,从事系统底层方面的研究,我大体画了一下这个学习过程的曲线。     注:虽然我的形象一直用着“高高手”,但我只是个菜鸟,如有雷同,纯属巧合,欢迎善意拍砖。 Php的语法非常简单,它不需要具备很多的知识就能上手,比如:你学习C语言,就必须非常了解各个变量如何定义,指针如何操作,内存如何创建销毁等等。再比如:你学习Java语言,就必须具有面向对象(OO)的基础,就必须清楚是什么时候需要封装,什么时候需要继承,什么时候需要多态,要做项目,怎么还得懂点SSH。Php的大部分使用者可能根本就没这么多讲究,有的人喜欢面向过程,那你就用面向过程的方式来写代码;有的人

3、喜欢面向对象,那你就用面向对象的方式写代码。Php的产生缘于互联网,目前也是互联网第一大编程语言。满足需求永远是第一位的,可维护性暂且可以放在第2位,我们的Web应用永远是β版的,计划远没有变化快。我们公司里有很多phper,我曾经问过他们:“php程序是如何被执行的?”,似乎多数人都很难说清楚。这其实不奇怪,我曾经拿类似的问题问过Javaer,Javaer的回答也基本如此。有的同学会问:“研究这样的问题有没有实际意义呢?”有!理解系统的底层,有助于写出高效健壮的代码,你会更清楚程序的代码到底该怎么写。另外,写php扩展的同学更是不必说,责无旁贷。要说清楚这个问题,最好的办法是阅读一

4、下php的源码。我闲来无事,粗读了一遍,愿意与各位共享。关于php的底层工作原理,绕不开webserver,象apache,lighttpd,nginx,iis等。我这里就以apache开始。以下内容将结合apache的源码、工作原理和扩展来逐步切入php的解析过程。二、Apache运行机制剖析l        B/S交互过程浏览器和服务器一次交互的过程如图:   1、 浏览器(Browser)向服务器(WebServer)发出HTTP请求(Request)。2、 服务器(WebServer)分析浏览器的请求,输出响应数据(Response)。3、 浏览器(Browser)收到响应数

5、据后进行解析,最后显示在浏览器中。下面是一份浏览器的请求数据和服务器的响应数据:  以上内容非常简单,我想Web开发人员都很清楚这个过程,在此不再赘述。 l        Apache概述Apache是目前世界上使用最为广泛的一种WebServer,它以跨平台、高效、稳定而闻名,按照官方统计的数据,Apache服务器的装机量大约占据该市场60%以上的份额,尤其是在X(Unix/Linux)平台上最为普遍。另外的一些WebServer产品,比如IIS只能运行在Windows平台上,大多结合微软的.Net技术机构一起使用。Apache最为诟病的一点是越来越重,被认为是重量级的WebSer

6、ver,所以后来又出现了很多轻量级的替代产品,比如lighttpd,nginx,它们的共同特点就是效率显著提高,但又往往只用于某些特定场合。 l        Apache组件逻辑图Apache是基于模块化设计的,核心代码其实并不多。你如果想要阅读Apache的源代码,建议你直接从core.c文件读起,主要的处理逻辑都包含在里面。Apache大多数的功能都被分散到各个模块中,系统启动的时候按需载入。MPM(Multi -Processing Modules,多重处理模块)是Apache的核心组件,Apache通过MPM使用操作系统的资源,管理进程/线程池。另外,Apache为了能够获

7、得最好的运行性能,他针对不同的平台(Unix/Linux、Window)做了优化,提供不同的MPM,其中最为常见的有prefork和worker两种。您的服务器跑的是哪种方式,取决于安装Apache过程中指定的编译参数。在X系统上默认编译为prefork模式。由于大多数的Unix都不支持真正的多线程,所以采用预派生子进程(prefork)方式,worker是一种基于多进程多线程混合的模式。对此感兴趣的同学可以阅读有关资料,此处不再多讲。 Apache的逻辑

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。