天天看點

與HTTP協作的Web伺服器與HTTP協作的Web伺服器

聲明:本人的所有部落格皆為個人筆記,作為個人知識索引使用,是以在叙述上存在邏輯不通順、跨度大等問題,希望了解。分享出來僅供大家學習翻閱,若有錯誤希望指出,感謝!

與HTTP協作的Web伺服器

虛拟主機實作多個域名

HTTP/1.1允許一台HTTP伺服器搭建多個Web站點

即使實體層隻有一台伺服器,但隻要使用虛拟主機,就可以虛拟為多個伺服器

域名通過DNS服務映射到IP位址,是以當請求發送到伺服器時,使用的是IP位址。若一台伺服器内托管了兩個域名,則收到請求時必須區分使用者要通路哪個域名

若伺服器使用虛拟主機搭載了多個域名,則用戶端在發送HTTP請求時,必須在Host首部内完整指定主機名或域名的URI

通信資料轉發程式

HTTP通信時,除用戶端和伺服器外,還有一些用于通信資料轉發的應用程式,例如代理、網管、隧道等

這些應用程式和伺服器可以将請求轉發給通信線路上的下一站伺服器,并且能夠接收從那台伺服器發送的響應再轉發給用戶端

  • 代理

    代理是一種有轉發功能的應用程式,它扮演了位于伺服器和用戶端“中間人”的角色。接收用戶端發送的請求并轉發給伺服器,接收伺服器發送的響應并轉發給用戶端

  • 網關

    網關是轉發其他伺服器通信資料的伺服器,接收從用戶端發來的請求時它就像自己擁有資源的源伺服器一樣對請求進行處理,有時用戶端都不會察覺自己的通信目标是一個網關

  • 隧道

    隧道是在相隔甚遠的用戶端和伺服器兩者之間進行中轉,并保持雙方通信連接配接的應用程式

代理

代理伺服器的基本行為就是接收用戶端發送的請求後轉發給其他伺服器

代理不改變URI,會直接發送給前方持有資源的目标伺服器

HTTP通信中可級聯多台代理伺服器,請求和響應的轉發會經過數台連接配接起來的代理伺服器,轉發時需要附加Via首部字段以标出經過的主機資訊

使用代理伺服器的理由:

  • 利用緩存技術減少網絡帶寬流量
  • 組織内部針對特定網站的通路控制

緩存代理

代理轉發響應時,緩存代理會預先将資源的副本(緩存)儲存到代理伺服器上,當代理再次接收到對相同資源的請求時,就可以不從源伺服器那裡擷取資源,而是将之前緩存的資源作為響應傳回

透明代理

請求或轉發響應時,部隊封包做任何加工的代理類型被稱為透明代理,反之被稱為非透明代理

網關

網關的工作機制與代理十分接近,網關能使通信線路上的伺服器提供非HTTP協定服務

利用網關能提高通信的安全性,因為可以在用戶端與網關之間的通信線路上加密以確定連接配接的安全

隧道

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

隧道本身不回去解析HTTP請求,請求會保持原樣中轉給之後伺服器

隧道會在通信雙方斷開連接配接時結束

儲存資源的緩存

緩存的有效期限

即使存在緩存,也會因為用戶端要求、緩存的有效期等因素,向源伺服器确認資源的有效性

若判斷緩存失效,緩存伺服器會再次從源伺服器擷取“新”資源

用戶端的緩存

緩存可以存在于用戶端的浏覽器中,浏覽器緩存如果有效,就可以直接從本地磁盤擷取資源

若判斷緩存過期,會向源伺服器确認資源的的有效性,若判定浏覽器緩存失效,浏覽器會再次請求新資源

繼續閱讀