? ? 一臺web服務(wù)器可搭建多個獨立域名的web網(wǎng)站,也可以為通信路徑上的中轉(zhuǎn)服務(wù)器提升傳輸效率。
一、用單臺虛擬主機實現(xiàn)多個域名
? ? HTTP/1.1規(guī)范允許一臺HTTP服務(wù)器搭建多個web站點。比如,提供web托管服務(wù)(Web Hosting Service)的供應(yīng)商,可以用一臺服務(wù)器為多位客戶提供服務(wù),也可以以每位客戶持有的域名運行各自不同的網(wǎng)站。這是因為利用了虛擬主機(Virtual Host,又稱虛擬服務(wù)器)的功能。
? ? 即使物理層面只有一臺服務(wù)器,但只要使用虛擬主機的功能,則可以假想已具有多臺服務(wù)器。

????客戶端使用HTTP協(xié)議訪問服務(wù)器時,會經(jīng)常采用類似www.hackr.jp這樣的主機名和域名。
? ? 在互聯(lián)網(wǎng)上,域名通過DNS服務(wù)映射到IP地址(域名解析)之后訪問目標(biāo)網(wǎng)站。可見,當(dāng)請求發(fā)送到服務(wù)器時,已經(jīng)是以IP地址形式訪問。
? ? 所以,如果一臺服務(wù)器內(nèi)托管了www.tricorder.jp和www.hackr.jp這兩個域名,當(dāng)收到請求就需要弄清楚究竟要訪問那個域名。

????在相同的IP地址下,由于虛擬主機可以寄存多個不同主機名和域名的web網(wǎng)站,因此在發(fā)送HTTP請求時,必須在Host首部內(nèi)完整指定主機名或域名的URI。
二、通信數(shù)據(jù)轉(zhuǎn)發(fā)程序:代理、網(wǎng)關(guān)、隧道
? ? HTTP通信時,除客戶端和服務(wù)端以外,還有一些用于通信數(shù)據(jù)轉(zhuǎn)發(fā)的應(yīng)用程序,例如代理、網(wǎng)關(guān)和隧道。他們可以配合服務(wù)器工作,這些應(yīng)用程序和服務(wù)器可以將請求轉(zhuǎn)發(fā)個通信線路上的下一站服務(wù)器,并且能接收從那臺服務(wù)器發(fā)送的響應(yīng)在轉(zhuǎn)發(fā)給客戶端。
? ? 1.代理:(代理是一種由轉(zhuǎn)發(fā)功能的應(yīng)用程序,它扮演了位于服務(wù)器和客戶端“中間人”的角色,接收由客戶端發(fā)送的請求并轉(zhuǎn)發(fā)給服務(wù)器,同時也接收服務(wù)器返回的響應(yīng)并轉(zhuǎn)發(fā)給客戶端)



使用代理服務(wù)器的理由有:利用緩存技術(shù)減少網(wǎng)絡(luò)寬帶的流量,組織內(nèi)部針對特定網(wǎng)站的訪問控制,以獲取訪問日志為主要目的,等等。
? ? 代理有多種使用方法,按兩種基礎(chǔ)分類。一種是 是否使用緩存,另一種是? 是否會修改報文。
? ? 緩存代理:(緩存轉(zhuǎn)發(fā)響應(yīng)時,緩存代理(caching Proxy)會預(yù)先將資源的副本保存在代理服務(wù)器上。當(dāng)代理再次接收到相同資源的請求時,就可以不從源服務(wù)器哪里獲取資源,而是將之前緩存的資源作為響應(yīng)返回)
? ? 透明代理:(轉(zhuǎn)發(fā)請求或響應(yīng)時,不對報文做任何加工的代理類型被稱為透明代理(Transparent Proxy)。反之,對于報文內(nèi)容進行加工的代理被稱為非透明代理)。
? ? 2.網(wǎng)關(guān):(網(wǎng)關(guān)是轉(zhuǎn)發(fā)其他服務(wù)器通信數(shù)據(jù)的服務(wù)器,接收從客戶端發(fā)送來的請求時,它就像自己擁有資源的服務(wù)器一樣對請求進行處理。有時客戶端可能都不會察覺,自己的通訊目標(biāo)是一個網(wǎng)關(guān)。)

網(wǎng)關(guān)的工作機制和代理十分相似,而網(wǎng)關(guān)能使通訊線路上的服務(wù)器提供非HTTP協(xié)議服務(wù)。
利用網(wǎng)關(guān)能提高通信的安全性,因為可以在客戶端與網(wǎng)關(guān)之間的通信線路上加密以確保連接的安全,比如,網(wǎng)關(guān)可以連接數(shù)據(jù)庫,使用SQL語句查詢數(shù)據(jù)。另外,在web購物網(wǎng)站上進行信用卡結(jié)算時,網(wǎng)關(guān)可以和信用卡結(jié)算系統(tǒng)聯(lián)動。
? ? 3.隧道:(隧道是在相隔甚遠的客戶端和服務(wù)器兩者之間進行中轉(zhuǎn),并保持雙方通信連接的應(yīng)用程序。)
隧道可按要求建立起一條與其他服務(wù)器的通信線路,屆時使用SSL等加密手段進行通信。隧道的目的是確??蛻舳四芘c服務(wù)端進行安全的通信,隧道本身不回去解析HTTP請求,也就是說,請求保持原樣中轉(zhuǎn)給之后的服務(wù)器,隧道會在通信雙方斷開連接時結(jié)束。

三、保存資源的緩存
? ? 緩存是指代理服務(wù)器或客戶端本地磁盤內(nèi)保存的資源副本。利用緩存可以減少對源服務(wù)器的訪問,因此也就節(jié)省了通信流量和通信時間。緩存服務(wù)器是代理服務(wù)器的一種,并歸類在緩存代理類型中。換句話說,當(dāng)代理轉(zhuǎn)發(fā)從服務(wù)器返回的響應(yīng)時,代理服務(wù)器將會保存一份資源的副本,

緩存服務(wù)器的優(yōu)勢在于利用緩存可避免多次從源服務(wù)器轉(zhuǎn)發(fā)資源。因此客戶端可就近從緩存服務(wù)器上獲取資源,而源服務(wù)器也不必多次處理相同的請求了。
? ? 1.緩存的有效期限
即便緩存服務(wù)期內(nèi)有緩存,也不能保證每次都會返回對同資源的請求。因為這關(guān)系到被緩存資源的有效性問題。
當(dāng)遇上源服務(wù)器上的資源更新時,如果還是使用不變的緩存,那就會演變成返回更新前的“舊”資源了。
即使存在緩存,也會因為客戶端的要求,緩存的有效期等因素,向源服務(wù)器確認(rèn)資源的有效性,若判斷緩存失效,緩存服務(wù)器會再次從原服務(wù)器上獲取“新”資源。

? ? 2.客戶端的緩存
? ? 緩存不僅可以存在于緩存服務(wù)期內(nèi),還可以存在客戶端瀏覽器中。以Intemet Explorer 程序為例,把客戶端緩存稱為臨時網(wǎng)絡(luò)文件(Temporary Internet File)。
? ? 瀏覽器緩存如果有效,就不必在向服務(wù)器請求相同的資源了,可以直接從本地磁盤內(nèi)讀取。
另外,和緩存服務(wù)器相同的一點是,當(dāng)判定緩存過期后。會向源服務(wù)器確認(rèn)資源的有效性。判斷瀏覽器緩存失效,瀏覽器會再次請求新資源。

在 HTTP 出現(xiàn)之前的協(xié)議?
在 HTTP 普及之前,也就是從互聯(lián)網(wǎng)的誕生期至今,曾出現(xiàn)過各式 各樣的協(xié)議。在 HTTP 規(guī)范確立之際,制定者們參考了那些協(xié)議的 功能。也有某些協(xié)議現(xiàn)在已經(jīng)徹底退出了人們的視線。接下來,我 們會簡單介紹一下這些協(xié)議。 FTP(File Transfer Protocol)
傳輸文件時使用的協(xié)議。該協(xié)議歷史久遠,可追溯到 1973 年前 后,比 TCP/IP 協(xié)議族的出現(xiàn)還要早。雖然它在 1995 年被 HTTP 的 流量(Traffic)超越,但時至今日,仍被廣泛沿用。?
NNTP(Network News Transfer Protocol)
?用于 NetNews 電子會議室內(nèi)傳送消息的協(xié)議。在 1986 年前后現(xiàn),屬于比較古老的一類協(xié)議?,F(xiàn)在,利用 Web 交換信息已成主 流,所以該協(xié)議已經(jīng)不怎么使用了。 Archie 搜索 anonymous FTP 公開的文件信息的協(xié)議。1990 年前后出現(xiàn),現(xiàn) 在已經(jīng)不常使用。?
WAIS(Wide Area Information Servers)
?以關(guān)鍵詞檢索多個數(shù)據(jù)庫使用的協(xié)議。1991 年前后出現(xiàn)。由于在已經(jīng)被 HTTP 協(xié)議替代,也已經(jīng)不怎么使用了。 Gopher?
查找與互聯(lián)網(wǎng)連接的計算機內(nèi)信息的協(xié)議 99 年前后出現(xiàn),由 于現(xiàn)在已經(jīng)被 HTTP 協(xié)議替代,也已經(jīng)不怎么使用了。