5.与HTTP协作的Web服务器
一臺web服務(wù)器可搭建多個獨(dú)立域名的web網(wǎng)站,也可作為通信路徑上的中轉(zhuǎn)服務(wù)器提升傳輸效率.
一.用單臺虛擬主機(jī)實現(xiàn)多個域名
用單臺虛擬主機(jī)實現(xiàn)多個域名 : HTTP/1.1 規(guī)范允許一臺HTTP服務(wù)器搭建多個web站點.比如,提供web托管服務(wù)(web hosting server) 的供應(yīng)商,可以用一臺服務(wù)器為多位客戶服務(wù),也可以以每位客戶持有的域名運(yùn)行各自不同的網(wǎng)站.這是因為利用了虛擬主機(jī)(virtual host,又稱虛擬服務(wù)器) 的功能. 即物理層面只有一臺服務(wù)器,但只要使用虛擬主機(jī)的功能,則可以假象已具有多臺服務(wù)器.
客戶端使用HTTP協(xié)議訪問服務(wù)器時,會經(jīng)常采用類似www.baidu.com 這樣的主機(jī)名和域名.在互聯(lián)網(wǎng)上,域名通過DNS服務(wù)映射到IP地址(域名解析) 之后訪問目標(biāo)網(wǎng)站.可見,當(dāng)請求發(fā)送到服務(wù)器時,已經(jīng)是以IP地址形式訪問了.所以,如果一臺服務(wù)器內(nèi)托管了www.baidu.com和www.jd.com 這兩個域名,當(dāng)收到請求時就需要弄清楚究竟要訪問哪個域名.
二.通信數(shù)據(jù)轉(zhuǎn)發(fā)程序 : 代理,網(wǎng)管,隧道
HTTP進(jìn)行通信時,除客戶端和服務(wù)器以外,還有一些用于通信數(shù)據(jù)轉(zhuǎn)發(fā)的應(yīng)用程序,例如代理,網(wǎng)管和隧道.他們可以配合服務(wù)器功能.
代理 : 代理是一種有轉(zhuǎn)發(fā)功能的應(yīng)用程序,它扮演了位于服務(wù)器和客戶端"中間人"的角色,接收由客戶端發(fā)送的請求并轉(zhuǎn)發(fā)給服務(wù)器,同時也接收服務(wù)器返回的響應(yīng)并轉(zhuǎn)發(fā)給客戶端 .
網(wǎng)關(guān) :網(wǎng)關(guān)是轉(zhuǎn)發(fā)其他服務(wù)器通信數(shù)據(jù)的服務(wù)器,接收從客戶端發(fā)送來的請求時,他就像自己擁有資源的源服務(wù)器一樣對請求進(jìn)行處理.有時客戶端可能都不會察覺,自己的通信目標(biāo)是一個網(wǎng)關(guān) .
代理 : 代理服務(wù)器的基本行為就是接收客戶端發(fā)送的請求后轉(zhuǎn)發(fā)給其他服務(wù)器. 代理不改變請求URI,會直接發(fā)送給前方持有資源的目標(biāo)服務(wù)器.持有資源實體的服務(wù)器被稱為源服務(wù)器.從源服務(wù)器返回的響應(yīng)經(jīng)過代理服務(wù)器后再傳給客戶端.在HTTP通信過程中,可級聯(lián)多臺代理服務(wù)器.請求和響應(yīng)的轉(zhuǎn)發(fā)會經(jīng)過數(shù)臺類似鎖鏈一樣鏈接起來的代理服務(wù)器.轉(zhuǎn)發(fā)時,需要附加via首部字段以標(biāo)記出經(jīng)過的主機(jī)信息. 使用代理服務(wù)器的理由有 : 利用緩存技術(shù)減少網(wǎng)絡(luò)帶寬的流量,組織內(nèi)部針對特定網(wǎng)站的訪問控制,以獲取訪問日志為主要目的,等等 . 代理有多種使用方法,按兩種基準(zhǔn)分類 :
緩存代理 : 代理轉(zhuǎn)發(fā)響應(yīng)時,緩存代理(caching proxy)會預(yù)先將資源的副本(緩存)保存在代理服務(wù)器上.當(dāng)代理再次接收到對相同資源的請求時,就可以不從資源服務(wù)器哪里獲取資源,而是將之前緩存的資源作為響應(yīng)返回.
網(wǎng)關(guān) : 網(wǎng)關(guān)的工作機(jī)制和代理十分相似 . 而網(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)站上進(jìn)行信用卡結(jié)算時,網(wǎng)關(guān)可以和信用卡結(jié)算系統(tǒng)聯(lián)動 .
三. 保存資源的緩存
緩存是指代理服務(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ù)器也不必多次處理相同的請求.
緩存的有效期限 : 幾鞭緩存服務(wù)器內(nèi)有緩存,也不能保證每次都會返回對同資源的請求. 因為這關(guān)系被緩存資源的有效性問題. 當(dāng)遇上資源服務(wù)器上的資源更新時,如果還是使用不便的緩存,那就會編程返回更新前的"舊"資源了. 即使存在緩存,也會因為客戶端的要求,緩存的有效期等因素,向源服務(wù)器確認(rèn)資源的有效性.若判斷緩存失效,緩存服務(wù)器會再次從源服務(wù)器上獲取"新"資源.
客戶端的緩存 : 緩存不僅可以存在于緩存服務(wù)器內(nèi),還可以寸在客戶端瀏覽器中.以Internet explorer 程序為例,可客戶端村換稱為臨時網(wǎng)絡(luò)文件(temporary Internet file ) .瀏覽器緩存如果有效,就不必再向服務(wù)器請求相同的資源了,可以直接從本地磁盤讀取.另外,和緩存服務(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àn).
FTP(file transfer protocol) : 傳輸文件時使用的協(xié)議.該協(xié)議歷史久遠(yuǎn),可追溯到1973年前后,比TCP/IP 協(xié)議族的出現(xiàn)還要早.雖然他在1995年被HTTP的瀏覽(traffic) 超越,但時至今日,仍被廣泛使用.
轉(zhuǎn)載于:https://blog.51cto.com/12654424/2048173
總結(jié)
以上是生活随笔為你收集整理的5.与HTTP协作的Web服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [.NET领域驱动设计实战系列]专题八:
- 下一篇: better-scroll 上拉加载,下