任何一個Web網站的內容都是在不斷更新和變化,但這並不意味這這個網站的內容就是動態內容,事實上,動態的內容是指用戶每次點擊 相同的連接時取的的內容是由Web服務器應用程序生成的,如常見得ASP,JSP等,與此相對應,靜態內容通常就是指由文本、圖像和多媒體組成,在用戶每 次單擊相應連接時基本保持不變。如今解決動態內容緩存的最新技術就是經過ESI技術來設計網站的內容。
ESI技術工做原理
動態生成的內容能爲用戶帶來豐富精彩的頁面,網站開發者也能夠更容易和更靈活地控制相關的內容,但在享受這些便利的同時,也增長了 網站數據庫和應用服務器的處理壓力的。當網站的訪問量增大後,硬件和數據庫的投資是很是巨大的,即便如此,仍然有可能致使頁面的嚴重延遲甚至訪問失敗。
用戶訪問動態生成的內容速度慢的根本緣由在於動態生成的內容須要通過一個複雜的過程,首先,根據用戶請求的不一樣將用戶的請求分配 到應用服務器相應的軟件模塊中,軟件模塊必須經過運算決定須要從數據庫中提取什麼樣的數據給用戶,而後再從數據庫中提取出相應的數據按照定義的格式傳給用 戶。這些冗長的過程致使用戶訪問速度變慢,同時增長了服務器的負載。
在實際環境中,一個動態生成的頁面,當中可能只有少許的內容是頻繁變化的或是個性化的,對於傳統的Cache服務器來講,爲了能 夠保證頁面的時效性,卻因爲頁面中這些少許的動態內容而沒法將整個頁面進行緩存。ESI(Edge Side Include)經過使用簡單的標記語言來對那些能夠加速和不能加速的網頁中的內容片段進行描述,每一個網頁都被劃分紅不一樣的小部分分別賦予不一樣的緩存控制 策略,使Cache服務器能夠根據這些策略在將完整的網頁發送給用戶以前將不一樣的小部分動態地組合在一塊兒。經過這種控制,能夠有效地減小從服務器抓取整個 頁面的次數,而只用從原服務器中提取少許的不能緩存的片段,所以能夠有效下降原服務器的負載,同時提升用戶訪問的響應時間。
ESI是一種簡單的標識語言,開發人員可使用它標誌內容片段以便經過相應的Cache服務器來加速緩存。同時ESI還定義了一 套內容效驗標準,能夠實現原服務器對Cache服務器中緩存內容的管理,提升了網站對內容的控制能力。CDN網絡也能夠利用在分佈全國各地的節點中安裝支 持ESI的Cache服務器來提供對網站動態內容提供CDN服務。