DC.Web.HttpCompress 壓縮模組源碼分析(一)

來源:互聯網
上載者:User

  從今天開始要和大家一起學習一下DC.Web.HttpCompress 壓縮模組的源碼。同時也希望大家一起討論~

  1.首先說一下整個流程。我們都知道當在瀏覽器敲下頁面的網址後會發生如下事情

  

  瀏覽器向伺服器發出http請求,伺服器找到頁面,讀取後返回給瀏覽器。當瀏覽器下載完成後就開始載入和渲染Html,如果碰到css,js引用會再次發出請求下載css和js檔案,我們就是要在請求頁面和請求css和js檔案的時候做一些“手腳”。

  2.既然是在處理請求的時候做手腳,那麼我們必須熟悉asp.net的處理流程,很好的展示了這個流程

  

  當我們向伺服器請求aspx頁面時,http請求會被inetinfo.exe進程捕獲,交給你自己註冊的ISAPI,aspx預設處理的ISAPI為aspnet_isapi.dll。而aspnet_isapi.dll則會通過一個叫做Http PipeLine(管線)的東西將這個請求發送給ASPNET_WP.EXE進程,然後framework通過HttpRuntime處理這個請求,處理完畢後將結果返回給用戶端。

  當http請求被送入HttpRuntime後,請求繼續被送入HttpApplication Factory容器當中,而這個容器給出一個HttpApplication執行個體來處理請求,然後依次進入到HttpModule—>HttpHandler Factory—>HttpHandler。

  當HttpHandler內的ProcessRequest方法處理完畢後,整個HttpRequest就被處理完了~~

  3.那麼要想實現壓縮模組我們要怎樣設計流程呢?

   我提兩點,大家先思考思考,下一篇開始進入源碼階段。

   a)每個請求都會交給一個HttpHandler處理,這也是處理請求的最理想地點。

   b)在HttpModule裡可以註冊生命週期裡的每個事件。類似於

    

public void Init(HttpApplication app)
{
  app.BeginRequest += new EventHandler(app_BeginRequest);
}

  4.考慮時間..........................

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.