<font id="vh7td"></font>

      <rp id="vh7td"></rp>

      <address id="vh7td"></address>
      <em id="vh7td"><i id="vh7td"></i></em>

          <mark id="vh7td"><noframes id="vh7td">
          <font id="vh7td"></font>
            新聞建站cms系統、政府cms系統定制開發

            廣州網站建設公司-閱速公司

            asp.net新聞發布系統、報紙數字報系統方案
            /
            http://www.goldexpectations.com/
            廣州網站建設公司
            您當前位置:首頁>網站技術

            網站技術

            Http Request在整個HttpModule中的生命周期圖

            發布時間:2021/12/7 15:43:54  作者:Admin  閱讀:154  

            廣告:阿里云采購優惠專區

            HttpModule對HttpApplication實例進行處理,而HttpApplication有很多事件(對應不同的生命周期),這樣就衍生出HttpModule內部事件機制和生命周期。

            一.HttpModule的事件

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

            說明:
            a.BeginRequest和EndRequest分別是HttpModule容器最開始的的和最后的事件;
            b.EndRequest之后還會觸發PreSendRequestHeaders事件和PreSendRequestContent事件,這不是在HttpModule外的兩個事件,表示 HttpModule結束,即將開始向Client發送數據。

            二.驗證HttpModule生命周期
            說明:

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

            三.利用HttpModule實現終止此次HttpRequest請求

            在BeginRequest事件中,使用HttpApplication.CompleteRequest()方法,可以實現當滿足一定條件時終止此次HttpRequest請求。
            Application.CompleteRequest();
            說明 :
            a.對于一個HttpModule,在BeginRequest中終止,但是仍然會調用EndRequest事件,以及PreSendRequestHeaders事件和PreSendRequestContent事件。也可以說是直接跳轉到EndRequest事件,而不會調用這期間的事件;
            b.如果有兩個HttpModule,在第一個HttpModule的BeginRequest中終止,僅僅不會調用第二個HttpModule的BeginRequest,但仍然會調用兩個EndRequest事件,以及PreSendRequestHeaders事件和PreSendRequestContent事件。

            廣告:阿里云新人采購專場

            相關文章
            HttpModule
            cms新聞系統購買咨詢
            掃描關注 廣州閱速軟件科技有限公司
            掃描關注 廣州閱速科技
            青娱乐极品视觉盛宴国产视频_精品人妻少妇一区二区_禁断の肉体乱爱中文字幕_国产日本卡二卡三卡四卡

            <font id="vh7td"></font>

                <rp id="vh7td"></rp>

                <address id="vh7td"></address>
                <em id="vh7td"><i id="vh7td"></i></em>

                    <mark id="vh7td"><noframes id="vh7td">
                    <font id="vh7td"></font>