九、與 HTTP 協(xié)作的 Web 服務(wù)器(本文)
HTTP 通信時,除客戶端和服務(wù)器外,還有一些用于協(xié)助通信的應(yīng)用程序。如下列出比較重要的幾個:代理、緩存、網(wǎng)關(guān)、隧道、Agent 代理。1.代理
代理HTTP 代理服務(wù)器是 Web 安全、應(yīng)用集成以及性能優(yōu)化的重要組成模塊。代理位于客戶端和服務(wù)器端之間,接收客戶端所有的 HTTP 請求,并將這些請求轉(zhuǎn)發(fā)給服務(wù)器(可能會對請求進行修改之后再進行轉(zhuǎn)發(fā))。對用戶來說,這些應(yīng)用程序就是一個代理,代表用戶訪問服務(wù)器。出于安全考慮,通常會將代理作為轉(zhuǎn)發(fā)所有 Web 流量的可信任中間節(jié)點使用。代理還可以對請求和響應(yīng)進行過濾,安全上網(wǎng)或綠色上網(wǎng)。2. 緩存
瀏覽器第一次請求
瀏覽器再次請求
Web 緩存或代理緩存是一種特殊的 HTTP 代理服務(wù)器,可以將經(jīng)過代理傳輸?shù)某S梦臋n復(fù)制保存起來。下一個請求同一文檔的客戶端就可以享受緩存的私有副本所提供的服務(wù)了??蛻舳藦母浇木彺嫦螺d文檔會比從遠程 Web 服務(wù)器下載快得多。
3. 網(wǎng)關(guān)
HTTP / FTP 網(wǎng)關(guān)網(wǎng)關(guān)是一種特殊的服務(wù)器,作為其他服務(wù)器的中間實體使用。通常用于將 HTTP 流量轉(zhuǎn)換成其他的協(xié)議。網(wǎng)關(guān)接收請求時就好像自己是資源的源服務(wù)器一樣。客戶端可能并不知道自己正在跟一個網(wǎng)關(guān)進行通信。4. 隧道
HTTP/SSL 隧道隧道是會在建立起來之后,就會在兩條連接之間對原始數(shù)據(jù)進行盲轉(zhuǎn)發(fā)的 HTTP 應(yīng)用程序。HTTP 隧道通常用來在一條或多條 HTTP 連接上轉(zhuǎn)發(fā)非 HTTP 數(shù)據(jù),轉(zhuǎn)發(fā)時不會窺探數(shù)據(jù)。HTTP 隧道的一種常見用途就是通過 HTTP 連接承載加密的安全套接字層(SSL)流量,這樣 SSL 流量就可以穿過只允許 Web 流量通過的防火墻了。
5. Agent 代理
自動搜索引擎“網(wǎng)絡(luò)蜘蛛”Agent 代理是代表用戶發(fā)起 HTTP 請求的客戶端應(yīng)用程序。所有發(fā)布 Web 請求的應(yīng)用程序都是 HTTP Agent 代理。
【HTTP協(xié)議】