與HTTP寫作的web服務器

1、用單臺虛擬主機實現多個域名

HTTP/1.1 規範允許以臺HTTP服務器搭建多個web站點。比如提供Web託管服務的供應商,可以用一臺服務器爲多爲客戶服務,也可以以每位客戶持有的域名允許各種不同的網站。這是因爲利用了虛擬主機的功能。
即使物理層面只有一臺服務器,但只要使用虛擬主機的功能,則可以對外表現爲多臺服務器。

在互聯網上域名通過DNS服務映射IP地址之後訪問目標網站,那麼當一臺服務器上託管了www.tricorder.jp和www.hackr.jp這二個域名,這二個域名被解析後的ip地址都爲http://203.189.105.112/。所以在發送HTTP請求時,必須在Host首部內完整的指定主機名或域名的URI。

2、通信數據轉發程序:代理、網關、隧道

HTTP通信時,除客服端和服務器之外,還有一些用於通信數據轉發的應用程序,例如代理、網關、隧道。他們可以配合服務器工作。

代理
代理是有一種有轉發功能的應用程序,它扮演了位於服務器和客服端 中間人 的角色,接受客服端的請求並轉發給服務器,同時也接受服務器返回的響應給客戶端。

代理不改變請求URI,會直接發送給前方持有資源的目標服務器。持有資源實體的服務器被稱爲源服務器。從源服務器返回的響應經過代理服務器後再傳給客戶端。

在HTTP通信過程中,可級聯多臺代理服務器。在經過代理服務器是,需要附加Via首部字段以標記出經過的主機信息。

使用代理服務器的理由有:利用緩存技術減少網絡帶寬的流量,組織內部針對特定網站的訪問控制等。
代理有很多種使用方法,按二種基準分類。一種是是否使用緩存,另一種是是夠會修改報文。

  • 緩存報文
    代理轉發響應時,緩存代理會預先將資源的副本保存在代理服務器上,當代理再次接收到對相同資源的請求時,就可以不從源服務器哪裏獲得資源,而是將之前緩存的資源作爲響應返回。
  • 透明代理
    轉發請求或響應時,不對報文做任何加工的代理類型被稱爲透明代理,反之,對報文內容進行加工的代理被稱爲非透明代理

網關

網關的工作機制和代理十分相似。而網關能使通信線路上的服務器提供非HTTP協議服務。
利用網關能提高通信的安全性,因爲可以在客戶端與網關之間的通信路線上加密以確保連接的安全。比如網關可以連接數據庫,利用sql語句查詢數據。

隧道

隧道是在相隔甚遠的客戶端和服務器二者之間進行中轉,並保持雙方通信連接的應用程序。
隧道會使用SSL等加密手段進行通信,隧道的目的是確保客服端與服務器進行安全的通信。隧道本身不會去解析HTTP請求,請求保持原樣轉給服務器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章