1. 程式人生 > >CDN技術之--內容緩存工作原理

CDN技術之--內容緩存工作原理

nginx 完成後 服務器驗證 網絡 新鮮度 1.0 工作 mod 擴展

有CDN前的網站服務技術
–硬件擴展:高成本,靈活性和可擴展性比較差
–鏡像技術(mirroring):
鏡像服務器安裝有一個可以進行自動遠程備份的軟件,每隔一定時間,各個鏡像服務器就會到網站的源服務器上去獲取最新的內容
–緩存技術(caching):緩存代理緩存被訪問過的內容,後續的相同內容訪問直接通過緩存代理獲得服務
–CDN:是緩存技術的基礎上發展起來的,是緩存的分布式集群實現

從技術層面看,Web架構的精華有三處:
–超文本技術HTML實現信息與信息的連接;
–統一資源標誌符URI實現全球信息的精確定位
–應用層協議HTTP實現分布式的信息共享

TCP連接在每一次HTTP(HTTP 1.0)請求和響應完成後就關閉,如果客戶端還要請求其他對象,需要重新為每個對象建立TCP連接。
當一個Web頁面內包含多個對象並全部顯示時,客戶端需要與服務器建立的TCP連接數較多,對整個時延和網絡流量造成了較大的影響

HTTP1.1采用了效率更高 的持續連接機制,即客戶端和服務器端建立TCP連接後,
後續相關聯的HTTP請求可以重復利用已經建立起來的TCP連接,
不僅整個Web頁面(包括基本的 HTML文件和其他對象)可以使用這個持續的TCP連接來完成HTTP請求和響應,
而且同一個服務器內的多個Web頁面也可以通過同一個持續TCP連接來請求和響應。
通常情況下,這個持續的TCP連接會在空閑一段特定的時間後關閉,而這個最大空閑時間時可以設置的(連接復用)。

HTTP協議中的緩存技術:新鮮度(時間值)和驗證(驗證信息如ETag或last-modified)時確定內容可否直接提供服務的最重要依據。
如果緩存內容足夠新鮮,緩存的內容就 能直接滿足HTTP訪問的需求了;
如果內容過期,而經源服務器驗證後發現內容沒有發生變化,緩存服務器也會避免將內容從源服務器重新傳輸一遍。
如果要通過META標簽來控制頁面不緩存,
一般情況下會在Web頁面的<head>區域中增加”pragma:no-cache”驗證的目的就是檢驗緩存內容是否可用。
當中間緩存存在一個過期的緩存內容,並且對應的訪問請求到達時,
緩存應該首先向源服務器或者其他保存有未過期的緩存服務器請求驗證來確定本地的緩存內容是否可用。
(緩存內容過期,但源服務器沒有更新內容,即緩存內容仍可用)

HTTP1.1介紹了cache-control顯示指令來讓網站發布者可以更全面地控制他們的內容,並對過期時間進行限制(控制是否緩存,怎麽緩存)
HTTP gzip壓縮:大多數情況需要壓縮的文件時網頁中出現最頻繁的HTML、CSS、javascript、XML等文件,
這類本身是沒有經過壓縮的文本文件,可以取得較好的壓縮效果
Web緩存代理軟件:Squid
負載均衡軟件:Nginx
DNS服務器軟件:BIND

備註:隨筆中內容來源於網上資料整理,僅供參考。

CDN技術之--內容緩存工作原理