TCP/IP基礎總結性學習(5)

與 HTTP 協做的 Web 服務器

  • 一臺 Web 服務器可搭建多個獨立域名的 Web 網站,也可做爲通訊路徑上的中轉服務器提高傳輸效率。

一. 用單臺虛擬主機實現多個域名web

  1. HTTP/1.1 規範容許一臺 HTTP 服務器搭建多個 Web 站點。好比,提供 Web 託管服務(Web Hosting Service)的供應商,能夠用一臺服務器爲多位客戶服務,也能夠以每位客戶持有的域名運行各自不一樣的網站。這是由於利用了虛擬主機(Virtual Host,又稱虛擬服務器)的功能。即便物理層面只有一臺服務器,但只要使用虛擬主機的功能,則能夠假想已具備多臺服務器。

2.圖示:客戶端使用 HTTP 協議訪問服務器時,會常常採用相似 www.hackr.jp 這樣的主機名和域名。數據庫

clipboard.png

3.在互聯網上,域名經過 DNS 服務映射到 IP 地址(域名解析)以後訪問目標網站。可見,當請求發送到服務器時,已是以 IP 地址形式訪問了。
因此,若是一臺服務器內託管了 www.tricorder.jp 和 www.hackr.jp 這 兩個域名,當收到請求時就須要弄清楚究竟要訪問哪一個域名。segmentfault

clipboard.png

解決:在相同的 IP 地址下,因爲虛擬主機能夠寄存多個不一樣主機名和域名的 Web 網站,所以在發送 HTTP 請求時,必須在 Host 首部內完整指定主機名或域名的 URI。瀏覽器


二.通訊數據轉發程序 :代理、網關、隧道緩存

  • HTTP 通訊時,除客戶端和服務器之外,還有一些用於通訊數據轉發的應用程序,例如代理、網關和隧道。它們能夠配合服務器工做。這些應用程序和服務器能夠將請求轉發給通訊線路上的下一站服務器,而且能接收從那臺服務器發送的響應再轉發給客戶端。

1. 代理安全

代理是一種有轉發功能的應用程序,它扮演了位於服務器和客戶端「中間人」的角色,接收由 客戶端發送的請求並轉發給服務器,同時也接收服務器返回的響應並轉發給客戶端。
代理服務器的基本行爲就是接收客戶端發送的請求後轉發給其餘服務器。代理不改變請求 URI,會直接發送給前方持有資源的目標服務器。    
持有資源實體的服務器被稱爲源服務器。從源服務器返回的響應通過代理服務器後再傳給客戶端。

clipboard.png

  • 每次經過代理服務器轉發請求或響應時,會追加寫入 Via 首部信息(在 HTTP 通訊過程當中,可級聯多臺代理服務器。請求和響應的轉發會通過數臺相似鎖鏈同樣鏈接起來的代理服務器。轉發時,須要附加 Via 首部字段以標記出通過的主機信息。)

clipboard.png

  • 其餘用途:

clipboard.png

使用代理服務器的理由有:利用緩存技術減小網絡帶寬的流量,組織內部針對特定網站的訪問控制,以獲取訪問日誌爲主要目的等等。
代理有多種使用方法,按兩種基準分類。一種是是否使用緩存,另外一 種是是否會修改報文。

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

2. 網關網絡

  • 利用網關能夠由 HTTP 請求轉化爲其餘協議通訊

clipboard.png

  1. 網關的工做機制和代理十分類似。而網關能使通訊線路上的服務器提供非 HTTP 協議服務。利用網關能提升通訊的安全性,由於能夠在客戶端與網關之間的通訊線路上加密以確保鏈接的安全。好比,網關能夠鏈接數據庫,使用 SQL 語句查詢數據。另外,在 Web 購物網站上進行信用卡結算時,網關能夠和信用卡結算系統聯動。

3. 隧道學習

  1. 隧道可按要求創建起一條與其餘服務器的通訊線路,屆時使用 SSL 等加密手段進行通訊。隧道的目的是確保客戶端能與服務器進行安全的通訊。隧道自己不會去解析 HTTP 請求。也就是說,請求保持原樣中轉給以後的服務器。隧道會在通訊雙方斷開鏈接時結束。
  2. 經過隧道的傳輸,能夠和遠距離的服務器安全通訊。隧道自己是透明的,客戶端不用在乎隧道的存在。

clipboard.png

4. 保存資源的緩存網站

  • 緩存是指代理服務器或客戶端本地磁盤內保存的資源副本。利用緩存可減小對源服務器的訪問,所以也就節省了通訊流量和通訊時間。緩存服務器是代理服務器的一種,並歸類在緩存代理類型中。換句話說,當代理轉發從服務器返回的響應時,代理服務器將會保存一份資源的副本。
  • 緩存服務器的優點在於利用緩存可避免屢次從源服務器轉發資源。所以客戶端可就近從緩存服務器上獲取資源,而源服務器也沒必要屢次處理相同的請求了。

clipboard.png

  • 緩存的有效期限
    即使緩存服務器內有緩存,也不能保證每次都會返回對同資源的請求。由於這關係到被緩存資源的有效性問題。當趕上源服務器上的資源更新時,若是仍是使用不變的緩存,那就會演變成返回更新前的「舊」資源了。即便存在緩存,也會由於客戶端的要求、緩存的有效期等因素,向源 服務器確認資源的有效性。若判斷緩存失效,緩存服務器將會再次從源服務器上獲取「新」資源。

clipboard.png

  • 客戶端的緩存
    緩存不只能夠存在於緩存服務器內,還能夠存在客戶端瀏覽器中。以 Internet Explorer 程序爲例,把客戶端緩存稱爲臨時網絡文件(Temporary Internet File)。瀏覽器緩存若是有效,就沒必要再向服務器請求相同的資源了,能夠直接從本地磁盤內讀取。另外,和緩存服務器相同的一點是,當斷定緩存過時後,會向源服務器確認資源的有效性。若判斷瀏覽器緩存失效,瀏覽器會再次請求新資源。

clipboard.png

如下是往日學習總結,有須要的盆友能夠去看看噢~~
TCP/IP基礎總結性學習(1):瞭解web和網絡基礎
連接描述
TCP/IP基礎總結性學習(2):簡單的HTTP協議
連接描述
TCP/IP基礎總結性學習(3):HTTP 報文內的 HTTP 信息
連接描述
TCP/IP基礎總結性學習(4):返回結果的 HTTP 狀態碼
連接描述

相關文章
相關標籤/搜索