欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

IIS架構與HTTP請求處理流程(3)

系統 2294 0

ASP.NET Web編程原理 之

IIS架構與HTTP請求處理流程(3)

續前文

8.1.4 HTTP請求的處理過程

在了解了 IIS 的架構之后,來看一下 IIS 架構中的各個組成部分是如何相互配合處理 HTTP 請求的。

先來從總體上看看 HTTP 請求的處理過程( 8 ? 10 )。

http請求處理過程

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1028" style="width: 415.5pt; height: 180pt;" o:ole="" type="#_x0000_t75"><imagedata o:title="" src="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image001.emz"></imagedata></shape> 8 ? 10 HTTP 請求的處理過程

8 ? 10 清晰地展示出了 HTTP 請求處理就是瀏覽器與 Web 服務器間“一問一答”的過程

首先,瀏覽器嘗試連接 Web 服務器的 80 端口,如果 Web 服務器可以響應此連接請求,就在瀏覽器與 Web 服務器間建立了一個通訊鏈路,在此“通道”上瀏覽器與 Web 服務器可以相互發送與接收信息。

假設瀏覽器向 Web 服務器發出一個讀取某 ASP.NET 站點上的某個 ASPX 網頁的請求。當此請求通過網絡到達 Web 服務器時,此請求被 HTTP.SYS 組件所接收。 HTTP.SYS 系統組件會檢查此 HTTP 請求的相關信息,根據其 URL 將此 HTTP 請求發送給運行在某個應用程序池中的工作者進程處理。如果同時有多個針對此 ASP.NET 站點的 HTTP 請求, HTTP.SYS 會將這些請求排隊,加入到對應的應用程序池的 HTTP 請求隊列中等待。

如果這是第一個對 ASP.NET 站點的 HTTP 請求,工作者進程會加載 aspnet_isapi.dll ,并將請求轉給它, aspnet_isapi.dll 接著會裝載 .NET CLR [1] 創建一個針對此 ASP.NET 站點的應用程序域 [2] ,然后啟動一個復雜的由多個步驟和組件參與的處理流程,當此處理流程結束,要發回給客戶端的結果(通常是 HTML 代碼,當然也可以是其他類型的資源,比如由程序動態生成的圖片)已經生成,此結果被轉發給 HTTP.SYS

注意: 對于以集成模式運行的 IIS 7 .NET CLR 在應用程序池一啟動就自動裝載,從而避免了臨時裝載 CLR 的花銷。后繼處理過程與 IIS 6 基本一致。

HTTP.SYS 接收到請求的處理結果之后,將其緩存到緩沖區中,然后把處理結果發回給發出 HTTP 請求的瀏覽器。

上述過程是對 IIS 處理 HTTP 請求全過程的粗略描述。 8.2 節將選取這個處理過程中的主要階段,詳細介紹針對 ASP.NET 網頁的 HTTP 請求處理過程。


8.1.5 ISAPI擴展、ISAPI篩選器和程序映射

IIS 的文檔中經常會提到兩個術語: ISAPI 擴展和 ISAPI 篩選器。

1 ISAPI 擴展

ISAPI 擴展( ISAPI Extension ”是一種可以添加到 IIS 中以增強 Web 服務器功能的程序,其載體為 DLL 文件。它通常直接負責響應 HTTP 請求。

根據 HTTP 請求要訪問的資源擴展名(通過 URL 獲取), IIS 會選取特定的 ISAPI 擴展來處理這一請求,這一過程被稱為“ 程序映射 而用于響應 HTTP 請求的這一 ISAPI 擴展被稱為“ HTTP Handler HTTP 處理程序) ”。 8 ? 11 展示了 IIS 6 中的程序映射。


程序映射

<shape id="圖片_x0020_8" style="visibility: visible; width: 301.5pt; height: 329.25pt;" type="#_x0000_t75" alt="IIS2" o:spid="_x0000_i1025"><imagedata o:title="IIS2" src="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image002.jpg"><font size="3" color="#000000"></font></imagedata></shape>

8 ? 11 程序映射( IIS 6

8 ? 11 中可以看到, IIS 指定對 ASP.NET 網頁(其擴展名為 .aspx )的請求將由 aspnet_isapi.dll 處理( 8 ? 12 )。

編輯映射

<shape id="圖片_x0020_9" style="visibility: visible; width: 302.25pt; height: 170.25pt;" type="#_x0000_t75" alt="無標題" o:spid="_x0000_i1026"><imagedata o:title="無標題" src="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image003.png"><font size="3" color="#000000"></font></imagedata></shape>

8 ? 12 aspnet_isapi.dll 負責處理對 ASP.NET 網頁的請求

IIS 7 中的程序映射與 IIS 6 略有不同。當 IIS 7 以“經典模式”運行時,與 IIS 6 一樣使用 aspnet_isapi.dll 響應針對“ .aspx ”的請求。但當 IIS 7 以“集成模式”運行時,則使用托管處理程序( System.Web.UI.PageHandlerFactory )響應針對“ .aspx ”的請求( 8 ? 13 )。



IIS7下的程序映射

<shape id="圖片_x0020_4" style="visibility: visible; width: 248.25pt; height: 221.25pt;" type="#_x0000_t75" o:spid="_x0000_i1027"><imagedata o:title="" src="file:///C:%5CUsers%5CJINXUL%7E1%5CAppData%5CLocal%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_image004.png"><font size="3" color="#000000"></font></imagedata></shape>

8 ? 13 IIS 7 集成模式下的程序映射

2 ISAPI 篩選器

“ISAPI篩選器( ISAPI Filter 也是一種 DLL ,但它不負責生成 HTTP 請求,它的主要作用是響應某些特定的事件。當這些事件發生時 ISAPI 篩選器被調用,它可以修改傳入或傳出的 HTTP 數據。

IIS 7 中,使用“ HTTP 模塊( HTTP Module 取代了傳統 ISAPI 篩選器的功能。

注意: ISAPI 擴展與 ISAPI 篩選器名字很相近,但其在 IIS 中的地位和所起的作用是不同的。



[1] CLR Comon Language Runtime ):通用語言運行時,是 .NET 的核心,可以將其看成是一臺虛擬的專用于運行 .NET 程序的計算機。

[2] 應用程序域( Application Domain ): .NET 引入的一種代碼隔離機制,一個托管進程可以擁有多個應用程序域,在應用程序域中可以裝載程序集,創建特定類型的對象,調用對象的方法。



*********************************************************

下一部分,將在本部分所介紹內容的基礎上,詳細介紹與ASP.NET開發密切相關的“ASP.NET請求處理管線(HTTP Pipe Line)”

IIS架構與HTTP請求處理流程(3)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久综合五月开心婷婷深深爱 | 日本www.在线中文字幕 | 男女做性无遮挡免费视频 | 日本久久影视 | 国产一级毛片视频 | 日产国产欧美视频一区精品 | 午夜国产精品免费观看 | 日韩精品影院 | 青青草久久爱 | 久久综合九色综合网站 | 乱码中文字幕人成在线 | 22eee在线播放成人免费视频 | 在线一区二区三区做爰视频网站 | 亚洲欧洲精品成人久久奇米网 | 欧美鲁| 不卡视频在线 | 天堂在线资源库 | 亚洲午夜成激人情在线影院 | 亚洲AV久久久噜噜噜久久 | 99re久久资源最新地址 | 色屁屁影院www免费 特片网久久 | 日本高清色www| 亚洲欧美日韩在线中文一 | 国产激情一区二区三区 | 人人爱国产 | 日干夜干天天干 | 狠狠操91 | 小明永久2015www永久免费观看 | 国产麻豆剧传媒精品好看的片 | 欧美成人免费午夜影视 | 欧美不卡一区二区三区在线观看 | 中文字幕一区在线观看视频 | 国产精品视频观看 | 天天插天天射天天操 | 99精品视频在线免费观看 | 91久久综合九色综合欧美亚洲 | 日本欧美久久久久免费播放网 | 国产精品高潮呻吟久久aⅴ码 | 精品三级国产 | 草久影视 | 黑人精品欧美一区二区蜜桃 |