电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP內(nèi)核探索 —— Apache運(yùn)行與鉤子函數(shù)

瀏覽:31日期:2022-09-16 11:47:24

Apache是目前世界上使用最為廣泛的一種Web Server,它以跨平臺(tái)、高效和穩(wěn)定而聞名。按照去年官方統(tǒng)計(jì)的數(shù)據(jù),Apache服務(wù)器的裝機(jī)量占該市場(chǎng)60%以上的份額。尤其是在X(Unix/Linux)平臺(tái)上,Apache是最常見(jiàn)的選擇。其它的Web Server產(chǎn)品,比如IIS,只能運(yùn)行在Windows平臺(tái)上,是基于微軟.Net架構(gòu)技術(shù)的不二選擇。

Apache并不是沒(méi)有缺點(diǎn),它最為詬病的一點(diǎn)就是變得越來(lái)越重,被普遍認(rèn)為是重量級(jí)的WebServer。所以,近年來(lái)又涌現(xiàn)出了很多輕量級(jí)的替代產(chǎn)品,比如lighttpd,nginx等等,這些WebServer的優(yōu)點(diǎn)是運(yùn)行效率很高,但缺點(diǎn)也很明顯,成熟度往往要低于Apache,通常只能用于某些特定場(chǎng)合。

Apache的運(yùn)行過(guò)程

Apache的運(yùn)行分為啟動(dòng)階段和運(yùn)行階段。 在啟動(dòng)階段,Apache為了獲得系統(tǒng)資源最大的使用權(quán)限,將以特權(quán)用戶root(*nix系統(tǒng))或超級(jí)管理員Administrator(Windows系統(tǒng))完成啟動(dòng), 并且整個(gè)過(guò)程處于一個(gè)單進(jìn)程單線程的環(huán)境中。 這個(gè)階段包括配置文件解析(如http.conf文件)、模塊加載(如mod_php,mod_perl)和系統(tǒng)資源初始化(例如日志文件、共享內(nèi)存段、數(shù)據(jù)庫(kù)連接等)等工作。

Apache的啟動(dòng)階段執(zhí)行了大量的初始化操作,并且將許多比較慢或者花費(fèi)比較高的操作都集中在這個(gè)階段完成,以減少了后面處理請(qǐng)求服務(wù)的壓力。

在運(yùn)行階段,Apache主要工作是處理用戶的服務(wù)請(qǐng)求。 在這個(gè)階段,Apache放棄特權(quán)用戶級(jí)別,使用普通權(quán)限,這主要是基于安全性的考慮,防止由于代碼的缺陷引起的安全漏洞。 Apache對(duì)HTTP的請(qǐng)求可以分為連接、處理和斷開(kāi)連接三個(gè)大的階段。同時(shí)也可以分為11個(gè)小的階段,依次為: Post-Read-Request,URI Translation,Header Parsing,Access Control,Authentication,Authorization, MIME Type Checking,F(xiàn)ixUp,Response,Logging,CleanUp

Apache Hook機(jī)制

Apache的Hook機(jī)制是指:Apache 允許模塊(包括內(nèi)部模塊和外部模塊,例如mod_php5.so,mod_perl.so等)將自定義的函數(shù)注入到請(qǐng)求處理循環(huán)中。換句話說(shuō),模塊可以在Apache的任何一個(gè)處理階段中掛接(Hook)上自己的處理函數(shù),從而參與Apache的請(qǐng)求處理過(guò)程。

mod_php5.so/ php5apache2.dll就是將所包含的自定義函數(shù),通過(guò)Hook機(jī)制注入到Apache中,在Apache處理流程的各個(gè)階段負(fù)責(zé)處理php請(qǐng)求。

關(guān)于Hook機(jī)制在Windows系統(tǒng)開(kāi)發(fā)也經(jīng)常遇到,在Windows開(kāi)發(fā)既有系統(tǒng)級(jí)的鉤子,又有應(yīng)用級(jí)的鉤子。常見(jiàn)的翻譯軟件(例如金山詞霸等等)的屏幕取詞功能,大多數(shù)是通過(guò)安裝系統(tǒng)級(jí)鉤子函數(shù)完成的,將自定義函數(shù)替換gdi32.dll中的屏幕輸出的繪制函數(shù)。

Apache 服務(wù)器的體系結(jié)構(gòu)的最大特點(diǎn),就是高度模塊化。如果你為了追求處理效率,可以把這些dso模塊在apache編譯的時(shí)候靜態(tài)鏈入,這樣會(huì)提高Apache 5%左右的處理性能。

Apache請(qǐng)求處理循環(huán)

Apache請(qǐng)求處理循環(huán)的11個(gè)階段都做了哪些事情呢?

Post-Read-Request階段。在正常請(qǐng)求處理流程中,這是模塊可以插入鉤子的第一個(gè)階段。對(duì)于那些想很早進(jìn)入處理請(qǐng)求的模塊來(lái)說(shuō),這個(gè)階段可以被利用。URI Translation階段。Apache在本階段的主要工作:將請(qǐng)求的URL映射到本地文件系統(tǒng)。模塊可以在這階段插入鉤子,執(zhí)行自己的映射邏輯。mod_alias就是利用這個(gè)階段工作的。Header Parsing階段。Apache在本階段的主要工作:檢查請(qǐng)求的頭部。由于模塊可以在請(qǐng)求處理流程的任何一個(gè)點(diǎn)上執(zhí)行檢查請(qǐng)求頭部的任務(wù),因此這個(gè)鉤子很少被使用。mod_setenvif就是利用這個(gè)階段工作的。Access Control階段。?Apache在本階段的主要工作:根據(jù)配置文件檢查是否允許訪問(wèn)請(qǐng)求的資源。Apache的標(biāo)準(zhǔn)邏輯實(shí)現(xiàn)了允許和拒絕指令。mod_authz_host就是利用這個(gè)階段工作的。Authentication階段。Apache在本階段的主要工作:按照配置文件設(shè)定的策略對(duì)用戶進(jìn)行認(rèn)證,并設(shè)定用戶名區(qū)域。模塊可以在這階段插入鉤子,實(shí)現(xiàn)一個(gè)認(rèn)證方法。Authorization階段。?Apache在本階段的主要工作:根據(jù)配置文件檢查是否允許認(rèn)證過(guò)的用戶執(zhí)行請(qǐng)求的操作。模塊可以在這階段插入鉤子,實(shí)現(xiàn)一個(gè)用戶權(quán)限管理的方法。MIME Type Checking階段。Apache在本階段的主要工作:根據(jù)請(qǐng)求資源的MIME類型的相關(guān)規(guī)則,判定將要使用的內(nèi)容處理函數(shù)。標(biāo)準(zhǔn)模塊mod_negotiation和mod_mime實(shí)現(xiàn)了這個(gè)鉤子。FixUp階段。這是一個(gè)通用的階段,允許模塊在內(nèi)容生成器之前,運(yùn)行任何必要的處理流程。和Post_Read_Request類似,這是一個(gè)能夠捕獲任何信息的鉤子,也是最常使用的鉤子。Response階段。Apache在本階段的主要工作:生成返回客戶端的內(nèi)容,負(fù)責(zé)給客戶端發(fā)送一個(gè)恰當(dāng)?shù)幕貜?fù)。這個(gè)階段是整個(gè)處理流程的核心部分。Logging階段。Apache在本階段的主要工作:在回復(fù)已經(jīng)發(fā)送給客戶端之后記錄事務(wù)。模塊可能修改或者替換Apache的標(biāo)準(zhǔn)日志記錄。CleanUp階段。?Apache在本階段的主要工作:清理本次請(qǐng)求事務(wù)處理完成之后遺留的環(huán)境,比如文件、目錄的處理或者Socket的關(guān)閉等等,這是Apache一次請(qǐng)求處理的最后一個(gè)階段。
標(biāo)簽: PHP
相關(guān)文章:
主站蜘蛛池模板: 云南外加剂,云南速凝剂,云南外加剂代加工-普洱澜湄新材料科技有限公司 | 阻垢剂,反渗透阻垢剂,缓蚀阻垢剂-山东普尼奥水处理科技有限公司 真空粉体取样阀,电动楔式闸阀,电动针型阀-耐苛尔(上海)自动化仪表有限公司 | 培训一点通 - 合肥驾校 - 合肥新亚驾校 - 合肥八一驾校 | 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | 合肥汽车充电桩_安徽充电桩_电动交流充电桩厂家_安徽科帝新能源科技有限公司 | 天津云仓-天津仓储物流-天津云仓一件代发-顺东云仓 | 南昌旅行社_南昌国际旅行社_南昌国旅在线 | 植筋胶-粘钢胶-碳纤维布-碳纤维板-环氧砂浆-加固材料生产厂家-上海巧力建筑科技有限公司 | 大型低温冷却液循环泵-低温水槽冷阱「厂家品牌」京华仪器_京华仪器 | 400电话_400电话申请_866元/年_【400电话官方业务办理】-俏号网 3dmax渲染-效果图渲染-影视动画渲染-北京快渲科技有限公司 | 无负压供水设备,消防稳压供水设备-淄博创辉供水设备有限公司 | 扬州汇丰仪表有限公司| 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 智慧旅游_智慧景区_微景通-智慧旅游景区解决方案提供商 | 北京签证代办_签证办理_商务签证_旅游签证_寰球签证网 | 办公室装修_上海办公室设计装修_时尚办公新主张-后街印象 | 信阳市建筑勘察设计研究院有限公司| 交通气象站_能见度检测仪_路面状况监测站- 天合环境科技 | 三板富 | 专注于新三板的第一垂直服务平台 | 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 家德利门业,家居安全门,别墅大门 - 安徽家德利门业有限公司 | 太平洋亲子网_健康育儿 品质生活| 西安展台设计搭建_西安活动策划公司_西安会议会场布置_西安展厅设计西安旭阳展览展示 | 钢化玻璃膜|手机钢化膜|钢化膜厂家|手机保护膜-【东莞市大象电子科技有限公司】 | 甲级防雷检测仪-乙级防雷检测仪厂家-上海胜绪电气有限公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 焊缝跟踪系统_激光位移传感器_激光焊缝跟踪传感器-创想智控 | LED太阳能中国结|发光红灯笼|灯杆造型灯|节日灯|太阳能灯笼|LED路灯杆装饰造型灯-北京中海轩光电 | 深圳市超时尚职业培训学校,培训:月嫂,育婴,养老,家政;化妆,美容,美发,美甲. | 皮带式输送机械|链板式输送机|不锈钢输送机|网带输送机械设备——青岛鸿儒机械有限公司 | 压缩空气冷冻式干燥机_吸附式干燥机_吸干机_沪盛冷干机 | 胀套-锁紧盘-风电锁紧盘-蛇形联轴器「厂家」-瑞安市宝德隆机械配件有限公司 | 播音主持培训-中影人教育播音主持学苑「官网」-中国艺考界的贵族学校 | 胶辊硫化罐_胶鞋硫化罐_硫化罐厂家-山东鑫泰鑫智能装备有限公司 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 水轮机密封网 | 水轮机密封产品研发生产厂家 | 定制奶茶纸杯_定制豆浆杯_广东纸杯厂_[绿保佳]一家专业生产纸杯碗的厂家 | 山东柳店新能源科技有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 酒店品牌设计-酒店vi设计-酒店标识设计【国际级】VI策划公司 |