国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Asp.Net VS ASP.NET Core 請(qǐng)求管道

這篇具有很好參考價(jià)值的文章主要介紹了Asp.Net VS ASP.NET Core 請(qǐng)求管道。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。


參考鏈接
ASP.NET CORE 啟動(dòng)過(guò)程及源碼解讀

1 Asp.Net Web Form管道

請(qǐng)求進(jìn)入Asp.Net工作進(jìn)程后,由進(jìn)程創(chuàng)建HttpWorkRequest對(duì)象,封裝此次請(qǐng)求有關(guān)的所有信息,然后進(jìn)入HttpRuntime類進(jìn)行進(jìn)一步處理。HttpRuntime通過(guò)請(qǐng)求信息創(chuàng)建HttpContext上下文對(duì)象,此對(duì)象將貫穿整個(gè)管道,直到響應(yīng)結(jié)束。同時(shí)創(chuàng)建或從應(yīng)用程序池里初始化一個(gè)HttpApplication對(duì)象,由此對(duì)象開(kāi)始處理之前注冊(cè)的多個(gè)HttpModule。之后調(diào)用HandlerFactory創(chuàng)建Handler處理程序,最終處理此次請(qǐng)求內(nèi)容,生成響應(yīng)返回。

流程圖:Asp.Net VS ASP.NET Core 請(qǐng)求管道

Asp.net HttpModule

用處:

  • 權(quán)限認(rèn)證和授權(quán):每個(gè)請(qǐng)求都經(jīng)過(guò)Module,所以做權(quán)限認(rèn)證很好
  • URL 轉(zhuǎn)發(fā)
  • 發(fā)爬蟲(chóng)

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

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

HttpModule生命周期示意圖

Asp.Net VS ASP.NET Core 請(qǐng)求管道

Asp.net HttpHandler

HttpHandler是asp.net真正處理Http請(qǐng)求的地方。在這個(gè)HttpHandler容器中,ASP.NET Framework才真正地對(duì)客戶端請(qǐng)求的服務(wù)器頁(yè)面做出編譯和執(zhí)行,并將處理過(guò)后的信息附加在HTTP請(qǐng)求信息流中再次返回到HttpModule中。

當(dāng)一個(gè)HTTP請(qǐng)求經(jīng)過(guò)HttpModule容器傳遞到HttpHandler容器中時(shí),ASP.NET Framework會(huì)調(diào)用HttpHandler的ProcessRequest成員方法來(lái)對(duì)這個(gè)HTTP請(qǐng)求進(jìn)行真正的處理。以一個(gè)ASPX頁(yè)面為例,正是在這里一個(gè)ASPX頁(yè)面才被系統(tǒng)處理解析,并將處理完成的結(jié)果繼續(xù)經(jīng)由HttpModule傳遞下去,直至到達(dá)客戶端。

對(duì)于ASPX頁(yè)面,ASP.NET Framework在默認(rèn)情況下是交給System.Web.UI.PageHandlerFactory這個(gè)HttpHandlerFactory來(lái)處理的。所謂一個(gè)HttpHandlerFactory,是指當(dāng)一個(gè)HTTP請(qǐng)求到達(dá)這個(gè)HttpHandlerFactory時(shí),HttpHandlerFactory會(huì)提供出一個(gè)HttpHandler容器,交由這個(gè)HttpHandler容器來(lái)處理這個(gè)HTTP請(qǐng)求。

一個(gè)HTTP請(qǐng)求都是最終交給一個(gè)HttpHandler容器中的ProcessRequest方法來(lái)處理的。

可以在一個(gè).ashx文件中實(shí)現(xiàn)IHttpHandler
ASP.Net 管道模型 VS Asp.Net Core 管道 總結(jié)
https://blog.51cto.com/u_15162069/2748151

2 Asp.Net Core管道

IHttpModule和IHttpHandler不復(fù)存在,取而代之的是一個(gè)個(gè)中間件(Middleware)。
Server將接收到的請(qǐng)求直接向后傳遞,依次經(jīng)過(guò)每一個(gè)中間件進(jìn)行處理,然后由最后一個(gè)中間件處理并生成響應(yīng)內(nèi)容后回傳,再反向依次經(jīng)過(guò)每個(gè)中間件,直到由Server發(fā)送出去。

中間件就像一層一層的“濾網(wǎng)”,過(guò)濾所有的請(qǐng)求和相應(yīng)。這一設(shè)計(jì)非常適用于“請(qǐng)求-響應(yīng)”這樣的場(chǎng)景——消息從管道頭流入最后反向流出。
由一個(gè)個(gè)中間件組成形同http請(qǐng)求管道, 每一個(gè)中間件都會(huì)做不同的http處理,最后反向流出。
Asp.Net VS ASP.NET Core 請(qǐng)求管道
官方實(shí)例中間件流程

Asp.Net VS ASP.NET Core 請(qǐng)求管道
例如:asp.net core MVC 是核心組件 , mvc對(duì)應(yīng)的請(qǐng)求映射到控制器-action等文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-444725.html

到了這里,關(guān)于Asp.Net VS ASP.NET Core 請(qǐng)求管道的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【源碼解讀】asp.net core源碼啟動(dòng)流程精細(xì)解讀

    【源碼解讀】asp.net core源碼啟動(dòng)流程精細(xì)解讀

    core出來(lái)至今,已經(jīng)7年了,我接觸也已經(jīng)4年了,從開(kāi)始的2.1,2.2,3.1,5,6再到如今的7,一直都有再用,雖然我是一個(gè)Winform仔,但是源碼一直從3.1到7都有再看,然后在QQ上面也一直比較活躍,之前好幾年前一直說(shuō)給大家解讀asp.net core源碼,在之前的博客中,講的都是比較粗略

    2024年02月05日
    瀏覽(28)
  • 使用任務(wù)計(jì)劃開(kāi)機(jī)啟動(dòng)ASP.NET Core應(yīng)用程序

    使用任務(wù)計(jì)劃開(kāi)機(jī)啟動(dòng)ASP.NET Core應(yīng)用程序

    ASP.NET Core應(yīng)用程序現(xiàn)在是一個(gè)控制臺(tái)應(yīng)用程序,在Windows上直接雙擊啟動(dòng),但如果想讓開(kāi)發(fā)完成的ASP.NET Core應(yīng)用程序開(kāi)機(jī)啟動(dòng),可以將ASP.NET Core應(yīng)用程序修改成Windows服務(wù)運(yùn)行,但這需要額外添加代碼,也可以使用IIS來(lái)托管ASP.NET Core應(yīng)用程序,但可能需要安裝一些支持IIS的組件

    2024年02月08日
    瀏覽(23)
  • 【ASP.NET Core 基礎(chǔ)知識(shí)】--路由和請(qǐng)求處理--路由概念(一)

    在Web應(yīng)用中,路由是一個(gè)至關(guān)重要的概念,它負(fù)責(zé)將用戶的請(qǐng)求映射到相應(yīng)的處理程序,以確保正確的頁(yè)面或資源被呈現(xiàn)給用戶。通過(guò)將用戶請(qǐng)求與適當(dāng)?shù)奶幚沓绦蜿P(guān)聯(lián)起來(lái),使得應(yīng)用能夠以有序和可維護(hù)的方式響應(yīng)用戶的操作。 一、ASP.NET Core路由基礎(chǔ) 1.1 路由的定義和作用

    2024年01月19日
    瀏覽(96)
  • 【ASP.NET Core 基礎(chǔ)知識(shí)】--路由和請(qǐng)求處理--路由概念(二)

    一、路由參數(shù)傳遞方式 1.1 查詢字符串參數(shù) 在路由中,查詢字符串參數(shù)是一種常見(jiàn)的方式傳遞信息。這種方式通過(guò)URL中的查詢字符串(?key1=value1key2=value2)將參數(shù)附加到請(qǐng)求中。在ASP.NET Core中,可以通過(guò)以下方式在控制器動(dòng)作方法中接收查詢字符串參數(shù): 在上述例子中,查詢

    2024年01月21日
    瀏覽(365)
  • ASP.NET Core如何知道一個(gè)請(qǐng)求執(zhí)行了哪些中間件?

    ASP.NET Core如何知道一個(gè)請(qǐng)求執(zhí)行了哪些中間件?

    需要添加兩個(gè)Nuget包分別是: Microsoft.AspNetCore.MiddlewareAnalysis 和 Microsoft.Extensions.DiagnosticAdapter ,前者是分析記錄中間件核心代碼實(shí)現(xiàn)后者是用來(lái)接收日志輸出的,由于是用的DiagnosticSource方式記錄日志,所以需要使用DiagnosticListener對(duì)象的SubscribeWithAdapter方法來(lái)訂閱。 這個(gè)適配器

    2023年04月09日
    瀏覽(98)
  • 在 ASP.NET Core Web API 中處理 Patch 請(qǐng)求

    PUT 和 PATCH 方法用于更新現(xiàn)有資源。 它們之間的區(qū)別是,PUT 會(huì)替換整個(gè)資源,而 PATCH 僅指定更改。 在 ASP.NET Core Web API 中,由于 C# 是一種靜態(tài)語(yǔ)言( dynamic 在此不表),當(dāng)我們定義了一個(gè)類型用于接收 HTTP Patch 請(qǐng)求參數(shù)的時(shí)候,在 Action 中無(wú)法直接從實(shí)例中得知客戶端提供了哪

    2024年02月04日
    瀏覽(95)
  • 提示“無(wú)法向會(huì)話狀態(tài)服務(wù)器發(fā)出會(huì)話狀態(tài)請(qǐng)求。請(qǐng)確保 ASP.NET State Service (ASP.NET 狀態(tài)服務(wù))已啟動(dòng)”,如何解決?

    提示“無(wú)法向會(huì)話狀態(tài)服務(wù)器發(fā)出會(huì)話狀態(tài)請(qǐng)求。請(qǐng)確保 ASP.NET State Service (ASP.NET 狀態(tài)服務(wù))已啟動(dòng)”,如何解決?

    ? ? 在aspx網(wǎng)站部署過(guò)程中,出現(xiàn)“無(wú)法向會(huì)話狀態(tài)服務(wù)器發(fā)出會(huì)話狀態(tài)請(qǐng)求。請(qǐng)確保 ASP.NET State Service (ASP.NET 狀態(tài)服務(wù))已啟動(dòng)”的提示,如下圖,如何解決? 解決方案1: Web.Config里面 把sessionState 的mode改為\\\"InProc\\\"?; ?mode 設(shè)置將決定Session信息存儲(chǔ)位置,可設(shè)置為下面幾種類型

    2024年02月15日
    瀏覽(26)
  • ASP.NET和ASP.NET Core的區(qū)別

    ASP.NET和ASP.NET Core是兩個(gè)不同的Web應(yīng)用程序框架,它們都是由Microsoft開(kāi)發(fā)的。ASP.NET是Microsoft推出的第一個(gè)Web應(yīng)用程序框架,而ASP.NET Core是其最新版本。本文將介紹ASP.NET和ASP.NET Core的簡(jiǎn)介和區(qū)別。 ASP.NET的簡(jiǎn)介 ASP.NET是一個(gè)基于.NET框架的Web應(yīng)用程序框架,它是Microsoft推出的第一

    2024年02月16日
    瀏覽(93)
  • ASP.NET Core教程:ASP.NET Core 程序部署到Windows系統(tǒng)

    ASP.NET Core教程:ASP.NET Core 程序部署到Windows系統(tǒng)

    本篇文章介紹如何將一個(gè)ASP.NET Core Web程序部署到Windows系統(tǒng)上。這里以ASP.NET Core WebApi為例進(jìn)行講解。首先創(chuàng)建一個(gè)ASP.NET Core WebApi項(xiàng)目,使用默認(rèn)的Values控制器,這里使用Visual Studio 2019創(chuàng)建一個(gè)ASP.NET Core 3.1d的WebApi項(xiàng)目。 創(chuàng)建新項(xiàng)目的時(shí)候選項(xiàng)ASP.NET Core Web應(yīng)用程序,如下圖所

    2023年04月08日
    瀏覽(99)
  • ASP.NET Core MVC -- 將視圖添加到 ASP.NET Core MVC 應(yīng)用

    ASP.NET Core MVC -- 將視圖添加到 ASP.NET Core MVC 應(yīng)用

    右鍵單擊“視圖”文件夾,然后單擊“添加”“新文件夾”,并將文件夾命名為“HelloWorld”。 右鍵單擊“Views/HelloWorld”文件夾,然后單擊“添加”“新項(xiàng)”。 在“添加新項(xiàng) - MvcMovie”對(duì)話框中: 在右上角的搜索框中,輸入“視圖” 選擇“Razor 視圖 - 空” 保持“名稱”框的

    2024年02月13日
    瀏覽(124)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包