HTTP第五篇 HTTP實現客戶端和服務端通信和轉發

域名訪問請求:
在互聯網上,域名通過 DNS 服務映射到 IP 地址(域名解析)之後訪問目標網站。可見,當請求發送到服務 器時,已經是以 IP 地址形式訪問了。
 
 
通信數據轉發程序 :代理、網關、隧道
 
代理
代理是一種有轉發功能的應用程序,它扮演了位於服務器和客戶端中間人的角色,接收由客戶端發送的請求 並轉發給服務器,同時也接收服務器返回的響應並轉發給客戶端。
代理服務器的基本行爲就是接收客戶端發送的請求後轉發給其他服務器。代理不改變請求 URI,會直接發送 給前方持有資源的目標服務器。 持有資源實體的服務器被稱爲源服務器。從源服務器返回的響應經過代理服務器後再傳給客戶端。
 
HTTP 通信過程中,可級聯多臺代理服務器。請求和響應的轉發會經過數臺類似鎖鏈一樣連接起來的代理 服務器。轉發時,需要附加 Via 首部字段以標記出經過的主機信息。每次通過代理服務器轉發請求或響應時,會追加寫入Via 首部信息。
 
 
使用代理服務器的理由有:利用緩存技術(稍後講解)減少網絡帶寬的流量,組織內部針對特定網站的訪問
控制,以獲取訪問日誌爲主要目的,等等。
 
代理有多種使用方法,按兩種基準分類。一種是是否使用緩存,另一種是是否會修改報文。
緩存代理
代理轉發響應時,緩存代理(Caching Proxy)會預先將資源的副本(緩存)保存在代理服務器上。 當代理再次接收到對相同資源的請求時,就可以不從源服務器那裏獲取資源,而是將之前緩存的資源作爲響 應返回。
透明代理
轉發請求或響應時,不對報文做任何加工的代理類型被稱爲透明代理(Transparent Proxy)。反之,對報文 內容進行加工的代理被稱爲非透明代理。
 
 
網關
1.網關是轉發其他服務器通信數據的服務器,接收從客戶端發送來的請求時,它就像自己擁有資源的源服務器 一樣對請求進行處理。有時客戶端可能都不會察覺,自己的通信目標是一個網關。
2.網關的工作機制和代理十分相似。而網關能使通信線路上的服務器提供非 HTTP 協議服務。
3.利用網關能提高通信的安全性,因爲可以在客戶端與網關之間的通信線路上加密以確保連接的安全。比如, 網關可以連接數據庫,使用 SQL 語句查詢數據。另外,在 Web 購物網站上進行信用卡結算時,網關可以和 信用卡結算系統聯動。
4.利用網關可以由HTTP 請求轉化爲其他協議通信。

 

隧道

隧道是在相隔甚遠的客戶端和服務器兩者之間進行中轉,並保持雙方通信連接的應用程序。

隧道可按要求建立起一條與其他服務器的通信線路,屆時使用 SSL 等加密手段進行通信。隧道的目的是確保 客戶端能與服務器進行安全的通信。

隧道本身不會去解析 HTTP 請求。也就是說,請求保持原樣中轉給之後的服務器。隧道會在通信雙方斷開連 接時結束。
通過隧道的傳輸,可以和遠距離的服務器安全通信。隧道本身是透明的,客戶端不用在意隧道的存在。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章