開發一個httpProxy 伺服器

來源:互聯網
上載者:User

標籤:開始   代理   監聽連接埠   設定   一個   技術分享   tps   ice   send   

一、產品原型

1、配置使用Proxy 伺服器

參照設定,HTTPS和FTP等不要設定(本Proxy 伺服器未對這兩種協議進行處理), IP是 127.0.0.1 表示Proxy 伺服器是在本機,監聽連接埠設成8888。   

在IE裡設定完後,我們會發現其它瀏覽器也自動開始使用Proxy 伺服器了,這是因為設定Proxy 伺服器是系統的功能,每個瀏覽器開啟的都是同一個設定Proxy 伺服器的程式。

其實,我們可以實現一個自動化佈建Proxy 伺服器的功能,這樣,當我們的Proxy 伺服器啟動的時候,就自動將原生Proxy 伺服器設定成自己,退出的時候,再恢複成原樣,這樣就不再需要向上面一樣手動設定了。

2、使用Proxy 伺服器

配置完畢後,在瀏覽器裡輸入網址: http://www.baidu.com 

我們可以清楚看到,所有的請求和響應資訊都已經被監聽到了。

二、關鍵點設計1、商務程序

參考Fiddler 的設計思想,在程式啟動時,new 一個代理(Proxy)類的執行個體,然後調用這個執行個體的Start方法,來啟動代理服務,

在Start方法裡就是不停的非同步監聽原生8888連接埠(還記得剛才設定Proxy 伺服器時設定的連接埠嗎),

        如果監聽到了,就從線程池裡,取出來一個線程,並在這個線程裡,構造一個Session對象。一個Session對象,代表用戶端與伺服器的一次會話,在有Proxy 伺服器情況下的一次會話(Session)代表的是:

                1.從用戶端讀請求

                2.重新封裝用戶端的請求,轉寄至目標伺服器. 

                3.從目標伺服器讀取響應資訊 

                4.封裝接收到的響應資訊並返回給用戶端。

故而在Session類裡,封裝一個ClientChatter類型的名為Request的對象,用來實現和用戶端的通訊,

另外又封裝了一個ServiceChatter類型的名為Response的對象,用來實現和目標伺服器的通訊。 

2、ObtainRequest

3、response.ResendRequest

 

4、response.ReadRequest

 

5、returnResponse

 

開發一個httpProxy 伺服器

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.