HTTP服务器
一、關于本文
文章從三個方面來簡介HTTP服務器中的一些概念,目的在于引出概念。服務器與域名的關系、服務器與數據轉發程序、服務區與緩存。
二、用單臺服務器實現多個域名
HTTP/1.1規范允許一臺HTTP服務器搭建多個Web站點。其中利用了虛擬主機(又稱之為虛擬服務器)的功能。
但是需要客戶端配合。
客戶端使用HTTP協議訪問服務器時,經常使用的是域名。在互聯網上,域名經過DNS服務映射到IP地址之后訪問目標網站。
在相同的IP地址下,由于虛擬主機可以寄存多個不同主機名和域名的Web網站,因此在發送HTTP請求時,必須在Host首部內完整指定主機名或域名的URI。
三、代理、網關、隧道
在HTTP通信中,除了客戶端和服務器之外,還有一些用于通信數據轉發的應用程序。
1、代理
代理是一種有轉發功能的應用程序,它扮演了位于服務器和客戶端“中間人”的角色,接受由客戶端發送的請求并轉發給服務器,同時也接受服務器返回的響應并轉發給客戶端。
代理不會改變客戶端發起請求的URI。
持有資源實體的服務器稱為源服務器。
在HTTP通信過程中,可級聯多臺代理服務器。轉發是,需要附加Via首部字段以標記出經過的主機信息。
使用代理服務器的原因有:利用緩存技術減少網絡帶寬的流量,組織內部針對特定網站的訪問,以獲取訪問日志。
代理服務器的分類標準有:是否使用緩存、是否修改報文。
緩存代理:代理轉發響應時,緩存代理(Caching Proxy)會預先將資源的副本(緩存)保存在代理服務器上。當代理再次接收到對相同資源的請求時,就可以不從源服務器那里獲取資源,而是將之前緩存的資源作為響應返回。
透明代理:轉發請求或響應時,不對報文做任何加工的代理類型被稱為透明代理(Transparent Proxy)。反之,對報文內容進行加工的代理被稱為非透明代理。
2、網關
網關的工作機制和代理十分相似。但是,利用網關可以由HTTP請求轉化為其他協議通信。
3、隧道
隧道可按要求建立起一條與其他服務器的通信線路,屆時使用SSL等加密手段進行通信。隧道的目的是確保客戶端能與服務器進行安全的通信。
隧道本身不會去解析HTTP請求。也就是說,請求保持原樣中轉給之后的服務器。隧道會在通信雙方斷開連接時結束。
通過隧道的傳輸,可以和遠距離的服務器安全通信。隧道本身是透明的,客戶端不用在意隧道的存在。
四、緩存
緩存是指代理服務器或客戶端本地磁盤內保存的資源副本。利用緩存可減少對源服務器的訪問,因此也就節省了通信的流量和通信時間。
緩存服務器就是代理服務器的一種,前面也已經介紹過。---
“緩存代理:代理轉發響應時,緩存代理(Caching Proxy)會預先將資源的副本(緩存)保存在代理服務器上。當代理再次接收到對相同資源的請求時,就可以不從源服務器那里獲取資源,而是將之前緩存的資源作為響應返回。”
客戶端的緩存:比如IE瀏覽器把客戶端緩存稱為臨時網絡文件(Temporary Internet File)。
【緩存的有效性】如何驗證緩存的有效性?可以根據時間來約定。也可以向源服務器確認資源的有效性,若判斷緩存失效,再向源服務器獲取新的資源。
?
轉載于:https://www.cnblogs.com/cchHers/p/8729471.html
總結
- 上一篇: tar命令
- 下一篇: 科大讯飞语音转文字以及中文分词的Java