HTTP相關的應用程式

拾年一劍發表於2020-12-05

通訊資料轉發程式

HTTP通訊時,除客戶端和伺服器以外,還有一些用於通訊資料轉發的應用程式,例如代理、閘道器和隧道。它們可以配合伺服器工作。

代理

代理是一種有轉發功能的應用程式,它扮演了位於伺服器和客戶端“中間人”的角色,接收由客戶端傳送的請求並轉發給伺服器,同時也接收伺服器返回的響應並轉發給客戶端。
代理不改變請求URI,會直接傳送給前方持有資源的目標伺服器。持有資源實體的伺服器被稱為源伺服器。從源伺服器返回的響應經過代理伺服器後再傳給客戶端。

使用代理伺服器的理由有:利用快取技術(稍後講解)減少網路頻寬的流量,組織內部針對特定網站的訪問控制,以獲取訪問日誌為主要目的,等等。代理有多種使用方法,按兩種基準分類。一種是是否使用快取,另一種是是否會修改報文。

閘道器

閘道器的工作機制和代理十分相似。而閘道器能使通訊線路上的伺服器提供非HTTP協議服務。利用閘道器能提高通訊的安全性,因為可以在客戶端與閘道器之間的通訊線路上加密以確保連線的安全。

隧道

道可按要求建立起一條與其他伺服器的通訊線路,屆時使用SSL等加密手段進行通訊。隧道的目的是確保客戶端能與伺服器進行安全的通訊。隧道本身不會去解析HTTP請求。也就是說,請求保持原樣中轉給之後的伺服器。隧道會在通訊雙方斷開連線時結束。

快取

快取是指代理伺服器或客戶端本地磁碟內儲存的資源副本。利用快取可減少對源伺服器的訪問,因此也就節省了通訊流量和通訊時間。快取伺服器是代理伺服器的一種,並歸類在快取代理型別中。換句話說,當代理轉發從伺服器返回的響應時,代理伺服器將會儲存一份資源的副本。
快取伺服器的優勢在於利用快取可避免多次從源伺服器轉發資源。因此客戶端可就近從快取伺服器上獲取資源,而源伺服器也不必多次處理相同的請求了。

快取的有效期限

即使存在快取,也會因為客戶端的要求、快取的有效期等因素,向源伺服器確認資源的有效性。若判斷快取失效,快取伺服器將會再次從源伺服器上獲取“新”資源。

客戶端的快取

快取不僅可以存在於快取伺服器內,還可以存在客戶端瀏覽器中。以InternetExplorer程式為例,把客戶端快取稱為臨時網路檔案(Temporary InternetFile)。
瀏覽器快取如果有效,就不必再向伺服器請求相同的資源了,可以直接從本地磁碟內讀取。另外,和快取伺服器相同的一點是,當判定快取過期後,會向源伺服器確認資源的有效性。若判斷瀏覽器快取失效,瀏覽器會再次請求新資源。

相關文章