人妻无码中文字幕永久在线,99RE6这里有精品热视频,国产成人综合色就色综合 ,蜜臀av在线观看

新聞建站cms系統(tǒng)、政府cms系統(tǒng)定制開(kāi)發(fā)

廣州網(wǎng)站建設(shè)公司-閱速公司

asp.net新聞發(fā)布系統(tǒng)、報(bào)紙數(shù)字報(bào)系統(tǒng)方案
/
http://www.jdki.com.cn/
廣州網(wǎng)站建設(shè)公司
您當(dāng)前位置:首頁(yè)>網(wǎng)站技術(shù)

網(wǎng)站技術(shù)

Http Request在整個(gè)HttpModule中的生命周期圖

發(fā)布時(shí)間:2021/12/7 15:43:54  作者:Admin  閱讀:234  

廣告:

HttpModule對(duì)HttpApplication實(shí)例進(jìn)行處理,而HttpApplication有很多事件(對(duì)應(yīng)不同的生命周期),這樣就衍生出HttpModule內(nèi)部事件機(jī)制和生命周期。

一.HttpModule的事件

BeginRequest 指示請(qǐng)求處理開(kāi)始
AuthenticateRequest 封裝請(qǐng)求身份驗(yàn)證過(guò)程
AuthorizeRequest 封裝檢查是否能利用以前緩存的輸出頁(yè)面處理請(qǐng)求的過(guò)程
ResolveRequestCache 從緩存中得到相應(yīng)時(shí)候觸發(fā)
--------- 建立HttpHandler控制點(diǎn), 接著處理(HttpHandler已經(jīng)建立,此后Session可用)--------
AcquireRequestState 加載初始化Session時(shí)候觸發(fā)
PreRequestHandlerExecute 在Http請(qǐng)求進(jìn)入HttpHandler之前觸發(fā)
HttpHandler.ProcessRequest()
--------- 返回到HttpModule接著處理(HttpHandler生命周期結(jié)束,Session失效)--------
PostRequestHandlerExecute 在Http請(qǐng)求進(jìn)入HttpHandler之后觸發(fā)
ReleaseRequestState 存儲(chǔ)Session狀態(tài)時(shí)候觸發(fā)
UpdateRequestCache 更新緩存信息時(shí)觸發(fā)
EndRequest 在Http請(qǐng)求處理完成的時(shí)候觸發(fā)
PreSendRequestHenaders 在向客戶(hù)端發(fā)送Header之前觸發(fā)
PreSendRequestConternt 在向客戶(hù)端發(fā)送內(nèi)容之前觸發(fā)
------------將處理后的數(shù)據(jù)返回客戶(hù)端-------------

說(shuō)明:
a.BeginRequest和EndRequest分別是HttpModule容器最開(kāi)始的的和最后的事件;
b.EndRequest之后還會(huì)觸發(fā)PreSendRequestHeaders事件和PreSendRequestContent事件,這不是在HttpModule外的兩個(gè)事件,表示 HttpModule結(jié)束,即將開(kāi)始向Client發(fā)送數(shù)據(jù)。

二.驗(yàn)證HttpModule生命周期
說(shuō)明:

a.HttpModule容器會(huì)將HttpRequest傳送到HttpHandler容器,這個(gè)時(shí)間點(diǎn)是ResolveRequestCache事件;
b.HttpModule容器會(huì)建立HttpHandler實(shí)例作為入口—Session從此生效;
c.觸發(fā)AcquireRequestState事件以及PreRequestHandlerExecute事件;
d.HttpModule容器便將對(duì)HttpRequest的控制權(quán)限轉(zhuǎn)讓給HttpHandler容器;
e.HttpModule容器處理HttpRequest—使用自身的ProcessRequest方法,將對(duì)其控件權(quán)又還給HttpModule容器—之后Session失效。

三.利用HttpModule實(shí)現(xiàn)終止此次HttpRequest請(qǐng)求

在BeginRequest事件中,使用HttpApplication.CompleteRequest()方法,可以實(shí)現(xiàn)當(dāng)滿(mǎn)足一定條件時(shí)終止此次HttpRequest請(qǐng)求。
Application.CompleteRequest();
說(shuō)明 :
a.對(duì)于一個(gè)HttpModule,在BeginRequest中終止,但是仍然會(huì)調(diào)用EndRequest事件,以及PreSendRequestHeaders事件和PreSendRequestContent事件。也可以說(shuō)是直接跳轉(zhuǎn)到EndRequest事件,而不會(huì)調(diào)用這期間的事件;
b.如果有兩個(gè)HttpModule,在第一個(gè)HttpModule的BeginRequest中終止,僅僅不會(huì)調(diào)用第二個(gè)HttpModule的BeginRequest,但仍然會(huì)調(diào)用兩個(gè)EndRequest事件,以及PreSendRequestHeaders事件和PreSendRequestContent事件。

廣告:

相關(guān)文章
HttpModule
cms新聞系統(tǒng)購(gòu)買(mǎi)咨詢(xún)
掃描關(guān)注 廣州閱速軟件科技有限公司
掃描關(guān)注 廣州閱速科技