溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

ASP.NET操作與分析請(qǐng)求過(guò)程是什么

發(fā)布時(shí)間:2021-11-02 10:43:20 來(lái)源:億速云 閱讀:94 作者:iii 欄目:編程語(yǔ)言

這篇文章主要介紹“ASP.NET操作與分析請(qǐng)求過(guò)程是什么”,在日常操作中,相信很多人在ASP.NET操作與分析請(qǐng)求過(guò)程是什么問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”ASP.NET操作與分析請(qǐng)求過(guò)程是什么”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

  netinfo.exe進(jìn)程:是www服務(wù)的進(jìn)程,IIS服務(wù)和ASPNET_ISAPI.DLL都寄存在此進(jìn)程中。

  ASPNET_ISAPI.DLL:是處理。aspx文件的win32組件。其實(shí)IIS服務(wù)器是只能識(shí)別。html文件的,當(dāng)IIS服務(wù)器發(fā)現(xiàn)被請(qǐng)求的文件是。aspx文件時(shí),IIS服務(wù)器將其交給aspnet_isapi.dll來(lái)處理。

  aspnet_wp.exe進(jìn)程:ASP.NET框架進(jìn)程,提供。net運(yùn)行的托管環(huán)境,。net的CLR(公共語(yǔ)言運(yùn)行時(shí))就是寄存在此進(jìn)程中。

  ASP.NETFramework處理一個(gè)HttpRequest的流程:

  HttpRequest-->inetinfo.exe-->ASPNET_ISAPI.dll-->ASPNET_WP.exe-->HttpRuntime-->HttpApplicationFactory-->HttpApplication-->HttpModule-->HttpHandlerFactory-->HttpHandler-->HttpHandler.ProcessRequest()

  ASP.NET請(qǐng)求處理過(guò)程是基于管道模型的,這個(gè)管道模型是由多個(gè)HttpModule和HttpHandler組成,ASP.NET把http請(qǐng)求依次傳遞給管道中各個(gè)HttpModule,最終被HttpHandler處理,處理完成后,再次經(jīng)過(guò)管道中的HTTP模塊,把結(jié)果返回給客戶(hù)端。我們可以在每個(gè)HttpModule中都可以干預(yù)請(qǐng)求的處理過(guò)程。

  注意:在http請(qǐng)求的處理過(guò)程中,只能調(diào)用一個(gè)HttpHandler,但可以調(diào)用多個(gè)HttpModule。

  當(dāng)請(qǐng)求到達(dá)HttpModule的時(shí)候,系統(tǒng)還沒(méi)有對(duì)這個(gè)請(qǐng)求真正處理,但是我們可以在這個(gè)請(qǐng)求傳遞到處理中心(HttpHandler)之前附加一些其它信息,或者截獲的這個(gè)請(qǐng)求并作一些額外的工作,也或者終止請(qǐng)求等。在HttpHandler處理完請(qǐng)求之后,我們可以再在相應(yīng)的HttpModule中把請(qǐng)求處理的結(jié)果進(jìn)行再次加工返回客戶(hù)端。

  ASP.NET怎樣操作與分析請(qǐng)求過(guò)程

  HttpModule

  HTTP模塊是實(shí)現(xiàn)了System.Web.IhttpModule接口的類(lèi)。

  IHttpModule接口的聲明:

  ?publicinterfaceIHttpModule

  ?{

  ?voidInit(HttpApplicationcontext);

  ?voidDispose();

  ?}

  Init方法:系統(tǒng)初始化的時(shí)候自動(dòng)調(diào)用,這個(gè)方法允許HTTP模塊向HttpApplication對(duì)象中的事件注冊(cè)自己的事件處理程序。

  Dispose方法:這個(gè)方法給予HTTP模塊在對(duì)象被垃圾收集之前執(zhí)行清理的機(jī)會(huì)。此方法一般無(wú)需編寫(xiě)代碼。

  HTTP模塊可以向System.Web.HttpApplication對(duì)象注冊(cè)下面一系列事件:

  AcquireRequestState當(dāng)ASP.NET運(yùn)行時(shí)準(zhǔn)備好接收當(dāng)前HTTP請(qǐng)求的對(duì)話(huà)狀態(tài)的時(shí)候引發(fā)這個(gè)事件。

  AuthenticateRequest當(dāng)ASP.NET運(yùn)行時(shí)準(zhǔn)備驗(yàn)證用戶(hù)身份的時(shí)候引發(fā)這個(gè)事件。

  AuthorizeRequest當(dāng)ASP.NET運(yùn)行時(shí)準(zhǔn)備授權(quán)用戶(hù)訪問(wèn)資源的時(shí)候引發(fā)這個(gè)事件。

  BeginRequest當(dāng)ASP.NET運(yùn)行時(shí)接收到新的HTTP請(qǐng)求的時(shí)候引發(fā)這個(gè)事件。

  Disposed當(dāng)ASP.NET完成HTTP請(qǐng)求的處理過(guò)程時(shí)引發(fā)這個(gè)事件。

  EndRequest把響應(yīng)內(nèi)容發(fā)送到客戶(hù)端之前引發(fā)這個(gè)事件。

  Error在處理HTTP請(qǐng)求的過(guò)程中出現(xiàn)未處理異常的時(shí)候引發(fā)這個(gè)事件。

  PostRequestHandlerExecute在HTTP處理程序結(jié)束執(zhí)行的時(shí)候引發(fā)這個(gè)事件。

  PreRequestHandlerExecute在ASP.NET開(kāi)始執(zhí)行HTTP請(qǐng)求的處理程序之前引發(fā)這個(gè)事件。在這個(gè)事件之后,ASP.NET把該請(qǐng)求轉(zhuǎn)發(fā)給適當(dāng)?shù)腍TTP處理程序。

  PreSendRequestContent在ASP.NET把響應(yīng)內(nèi)容發(fā)送到客戶(hù)端之前引發(fā)這個(gè)事件。這個(gè)事件允許我們?cè)趦?nèi)容到達(dá)客戶(hù)端之前改變響應(yīng)內(nèi)容。我們可以使用這個(gè)事件給頁(yè)面輸出添加用于所有頁(yè)面的內(nèi)容。例如通用菜單、頭信息或腳信息。

  PreSendRequestHeaders在ASP.NET把HTTP響應(yīng)頭信息發(fā)送給客戶(hù)端之前引發(fā)這個(gè)事件。在頭信息到達(dá)客戶(hù)端之前,這個(gè)事件允許我們改變它的內(nèi)容。我們可以使用這個(gè)事件在頭信息中添加cookie和自定義數(shù)據(jù)。

  ReleaseRequestState當(dāng)ASP.NET結(jié)束所搜有的請(qǐng)求處理程序執(zhí)行的時(shí)候引發(fā)這個(gè)事件。

  ResolveRequestCache我們引發(fā)這個(gè)事件來(lái)決定是否可以使用從輸出緩沖返回的內(nèi)容來(lái)結(jié)束請(qǐng)求。這依賴(lài)于Web應(yīng)用程序的輸出緩沖時(shí)怎樣設(shè)置的。

  UpdateRequestCache當(dāng)ASP.NET完成了當(dāng)前的HTTP請(qǐng)求的處理,并且輸出內(nèi)容已經(jīng)準(zhǔn)備好添加給輸出緩沖的時(shí)候,引發(fā)這個(gè)事件。這依賴(lài)于Web應(yīng)用程序的輸出緩沖是如何設(shè)置的。

到此,關(guān)于“ASP.NET操作與分析請(qǐng)求過(guò)程是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI