從半個磚家說開去--代理服務器

   這兩天突然有人問“你是web的專家麼?”,雖然我從事web開發已有些年頭,但是說到專家二字,始終難以自我承認,所以,就自我解嘲地稱自己爲“半個磚家”,呵呵。

   從事後來看,也挺對得起這個稱號的。因爲別人問的問題,正好就是自己所不知道的HTTP代理服務器。他的目的是想通過代理服務器方式解決兩個信息孤島的互訪問題,需要撮合HTTP訪問和視頻信息。

  這兩天就在壓力下惡補了關於代理服務器的基礎知識,有感於網上凌亂的資料,和自我感覺總結出代理服務器最基礎的科普知識,就記以文章以積累。

    代理服務器基本上有兩種分類HTTP代理和SOCKS4/5代理。在HTTP代理中又可以區分正向代理和反向代理。如果按照這個概念原則來劃分實際上SOCKS4/5代理服務器也可以被稱之爲“正向代理”。有別於HTTP代理,SOCKS5代理可以代理TCP和UDP等訪問,經緯是比較分明的!

   對於正向代理而言,需要用戶明確地指定,即對於一般用戶而言是可感知的。而且在這個設置的背後,從數據流向上來講,也是不同的。例如,通過http proxy上網,與不通過http proxy上網,在數據傳輸路徑是大不一樣的,非proxy方式可以認爲是一種直連,而prxoy方式,所有的HTTP請求均要通過Proxy。正向代理相當於用戶要自己穿上一套“代理”的外衣,包裹的是用戶,以用戶視角來看是,朝自己而來的正向。

  對於反向代理而言,包裹的是真正的WEB服務器,是服務器主動穿上了外衣,通過Proxy可以負荷分擔、緩存等提高性能的技術,來提高網絡訪問速度。反向代理, 對於用戶是透明的,無需用戶自己設置,一般也感知不到。

   對於HTTP Proxy一般我們都比較瞭解,在IE選項中通過代理選項進行設置。對於WEB訪問中的非HTTP請求,正向的HTTP代理是否會發揮作用呢?按照我現在的認識水平和把握的正向代理的原則來看,非HTTP請求的網絡連接,需要在設計和編程處理,要自己主動穿上代理的外衣,要不然就是隻能是直連。而這種過程並非像在IE中設置代理服務器這麼一設置這麼簡單,通常是需要一大堆的代碼進行支撐的。IE這麼簡單,是因爲IE自己實現了Proxy的訪問方式。

  帶着這樣的問題,研究QQ登錄時使用代理登錄的情況,進行了證實。可以看到在選擇SOCKS5代理時,QQ會首先跟代理服務器之間建立socks的過程,也符合網上對於socks代理的示意圖


是需要客戶端自身支持和特殊編程的,首先與代理服務器之間建鏈,而非一種網絡自提供的基礎功能,自動幫你代理。

 

至於QQ可以通過HTTP Proxy登錄,是一種比較特殊的使用吧,好多HTTP Proxy也支持的不夠好。

發佈了128 篇原創文章 · 獲贊 7 · 訪問量 23萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章