菜鳥面試必知的 http 知識(六)—— web的結構組件

我們通常認為網絡連接直接發生在客戶端和服務器之間。但實際上網絡請求從客戶端發出后,會經過層層關卡到達服務器。服務器收到請求后,返回的響應依舊會經過層層關卡返回給客戶端。本篇文章介紹了網絡請求和響應會經過哪些關卡,以及這些關卡的作用分別是什么?

下面是本文的提綱:
  1. 代理
    位于客戶端和服務器之間的 HTTP 中間實體

  2. 緩存
    HTTP 的倉庫,使常用頁面的副本可以保存在離客戶端更近的地方

  3. 網關
    連接其他應用程序的特殊 Web 服務器

  4. 隧道
    對 HTTP 通信報文進行盲轉發的特殊代理

  5. Agent 代理
    發起自動 HTTP 請求的半智能 Web 客戶端


1 - 代理

代理位于客戶端和服務器之間,接受所有客戶端的HTTP請求,并將這些請求轉發給服務器。對于用戶來說,這些應用程序就是一個代理,代表用戶訪問服務器。

web結構組件——代理
1.1 代理服務器的部署
出口代理和訪問(入口)代理
  • a. 出口代理
    可以將代理固定在本地網絡的出口點,以便控制本地網絡與大型因特網之間的流量。可以在公司網絡中使用代理,提供針對公司外部惡意黑客的防火墻保護。

  • b. 訪問(入口)代理
    代理常被放在ISP(Internet Service Provider)訪問點上,用以處理來自客戶的聚合請求。ISP使用緩存代理來存儲常用文檔的副本,以提高用戶的下載速度,降低因特網帶寬耗費。

反向代理和網絡交換代理
  • c. 反向代理
    外部所有的請求都會發送給代理,代理轉發給某臺服務器。在這里,代理可以進行負載均衡,把請求分配給空閑或者處理能力強的機器,也可以進行統一安全性檢查

  • d. 網絡交換代理
    通過緩存來減輕因特網節點的擁塞,并對流量進行監視。

2 - 緩存

Web緩存(Web cache)或代理緩存(proxy cache)是一種特殊HTTP代理服務器,可以將經過代理傳送的常用文檔復制保存下來。下一個請求同一文檔的客戶端就可以享受緩存的私有副本所提供的服務了。這樣做的目的是因為客戶端從附近的緩存下載文檔會比從遠程Web服務器下載快得多。

web結構組件——緩存
2.1 緩存處理請求的過程

Web緩存的基本工作原理大多很簡單,對一條HTTP GET報文的基本緩存處理過程包括以下7個步驟(如圖所所示):

緩存命中
  1. 接收——緩存從網絡中讀取抵達的請求報文
  2. 解析——緩存對報文進行解析,提取出URL和各種首部
  3. 査詢——緩存査看是否有本地副本可用,如果沒有,就獲取一份副本,并將其保存在本地
  4. 新鮮度檢測——緩存査看已緩存副本是否足夠新鮮,如果不是,就詢問服務器是否有任何更新
  5. 創建響應——緩存會用新的首部和已緩存的主體來構建一條響應報文
  6. 發送——緩存通過網絡將響應發回給客戶端
  7. 日志——緩存可選地創建一個日志文件條目來描述這個事務

3 - 網關

網關(gateway)是一種特殊的服務器,作為其他服務器的中間實體使用。通常用于將HTTP流量轉換為其他的協議。網關接受請求時就好像自己是資源端服務器一樣。客戶端可能并不知道自己正在與一個網關進行通信。
例如,一個HTTP/FTP網關會通過HTTP請求接受對FTP URI的請求,但通過FTP協議來獲取文檔。得到的文檔會被封裝成一條HTTP報文,發送給客戶端。

web結構組件——網關

網關和代理的區別是,代理連接的是兩個或多個使用相同協議的應用程序,而網關連接的則是兩個或多個使用不同協議的端點。

3.1 網關的3個實例

下圖顯示了三個網關的示例:


三個網關的示例
  • 在圖a中,網關收到了對FTP URL的HTTP請求。然后網關打開FTP連接,并向FTP服務器發布適當的命令。然后將文檔和正確的HTTP首部通過HTTP回送;
  • 在圖b中,網關通過SSL收到了一條加密的Web請求,網關會對請求進行解密,然后向目標服務器轉發一條普通的HTTP請求??梢詫⑦@些安全加速器直接放在(通常處于同一場所的)Web服務器前面,以便為原始服務器提供髙性能的加密機制;
  • 在圖c中,網關通過應用程序服務器網關API,將HTTP客戶端連接到服務器端的應用程序上去。在網上的電子商店購物,査看天氣預報,或者獲取股票報價時,訪問的就是應用程序服務器網關。這也是網關最常見的用途,客戶端無須關注服務器實現,只需要按照API或CGI發送規定格式的內容,就可以獲取相應的內容。

4 - 隧道

隧道(tunnel)是建立起來之后,就會在兩條連接之間對原始數據進行盲轉發的 HTTP 應用程序。HTTP 隧道通常用來在一條或多條 HTTP 連接上轉發非 HTTP 數據,轉發時不會窺探數據。HTTP 隧道的一種常見用途是通過 HTTP 連接承載加密的安全套接字層(SSL, Secure Sockets Layer)流量,這樣 SSL 流量就可以穿過只允許 Web 流量通過的防火墻了。
如圖所示,HTTP/SSL 隧道收到一條 HTTP 請求,要求建立一條到目的地址和端口的輸出連接,然后在 HTTP 信道上通過隧道傳輸加密的 SSL 流量,這樣就可以將其盲轉發到目的服務器上去了。

web結構組件——隧道

5 - Agent代理

用戶 Agent 代理(或者簡稱為 Agent 代理)是代表用戶發起 HTTP 請求的客戶端程序。所有發布 Web 請求的應用程序都是 HTTP Agent 代理。到目前為止,我們只提到過一種 HTTP Agent 代理:Web 瀏覽器,但用戶 Agent 代理還有很多其他類型,比如網絡爬蟲。
爬蟲屬于Web機器人,而得到最廣泛使用的Web機器人都是因特網搜索引擎。因特網搜索引擎可以幫助用戶找到世界范圍內涉及任意主題的文檔。

web結構組件——Agent代理


大家好,我是彬彬醬,目前在騰訊從事Web后端開發。
菜鳥必知的 http 知識專題整理了關于網絡的基礎知識,適合大家進行入門級學習,這個專題現包含下列文章:
菜鳥必知的 http 知識(一)—— TCP 握手協議
菜鳥必知的 http 知識(二)—— HTTP 協議特點
菜鳥必知的 http 知識(三)—— 請求和響應報文
菜鳥必知的 http 知識(四)—— HTTP 和 HTTPS
菜鳥必知的 http 知識(五)—— 新技術的出現
菜鳥必知的 http 知識(六)—— web的結構組件


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容