動態快取技術之CSI,SSI,ESI

2022-09-13 19:48:13 字數 1486 閱讀 3497

平時我們談頁面,大都數是以頁面為單位的。

一、csi (client side includes)

含義:通過iframe、j**ascript、ajax等方式將另外乙個頁面的內容動態包含進來。

原理:整個頁面依然可以靜態化為html頁面,不過在需要動態的地方則通過iframe,j**ascript或ajax來動態載入!

例子:'

' border='

0'>

優點:相對比較簡單,不需要伺服器端做改變和配置;

缺點:不利於搜尋引擎優化(iframe方式), j**ascript相容性問題,以及客戶端快取問題可能導致更新後不能及時生效!對於客戶體驗也不夠好!

二、ssi(server side includes)

原理:通過ssi呼叫各模組的對應檔案,最後組裝為html頁面,需要伺服器模組支援(具體配置本文不做詳述),比如:apache伺服器需要開啟mod_include模組;

如何在nginx上配置ssi

需要的選項主要是以下三個:

ssi:預設值off,啟用ssi時將其設為on

ssi_silent_errors:預設值off,開啟後在處理ssi檔案出錯時不輸出錯誤提示"[an error occurred while processing the directive]"。

ssi_types:預設是text/html,所以如果需支援html,則不需要設定這句,如果需要支援shtml則需要設定:ssi_types text/shtml

例子:html** 收藏**

優點:不受具體語言限制,比較通用,只需要web伺服器或應用伺服器支援即可,ngnix、apache、iis等對此都有較好的支援。

缺點:ssi只能在當前伺服器上包含載入,不能夠直接包含其他伺服器上的檔案,即不能跨域包含;

nginx的ssi用法

三、esi(edge side includes)

含義及原理:通過使用簡單的標記語言來對那些可以加速和不能加速的網頁中的內容片斷進行描述,每個網頁都被劃分成不同的小部分分別賦予不同的快取控制 策略,使cache伺服器可以根據這些策略在將完整的網頁傳送給使用者之前將不同的小部分動態地組合在一起。通過這種控制,可以有效地減少從伺服器抓取整個頁面的次數,而只用從原伺服器中提取少量的不能快取的片斷,因此可以有效降低原伺服器的負載,同時提高使用者訪問的響應時間。與ssi不同的是,esi多在快取伺服器或**伺服器上執行!

例子:

html** 收藏**

esi demo

head>

"login.php

" />

這中間是可靜態化html內容3>

優點:可用於快取整個頁面或頁面片段,比較適合用於快取伺服器上;

缺點:目前支援esi的軟體還比較少,官方更新也略顯緩慢,因此使用不是很廣!

nginx 優化之快取技術

利用nginx 的expire 快取技術,可以將伺服器端的 的一些內容或資料儲存在客戶端,當客戶端再向伺服器端發出請求的時候,伺服器端可以給客戶端頭資訊,告訴它哪幾個檔案,是上次還沒過期的,或是現在還沒修改的,讓客戶端直接呼叫原來的快取。這樣可以大大減少對伺服器的資料請求。expire可寫在loca...

php快取技術之Memcached

1.掌握如何設定快取操作 2.掌握如何獲取快取操作 3.掌握如何刪除快取操作 1.memcache和redis都是用來管理資料的 2.他們資料都是存放在記憶體裡的 3.redis可以定期將資料備份到磁碟 持久化 4.memcache只是簡單的key value快取 5.redis不僅僅支援簡單的k ...

快取技術Redis之list型別

list是乙個鍊錶結構,主要功能是 push pop 獲取乙個範圍所有值等等。操作的 key理解為鍊錶的名字。redis 的list 其實就是乙個每乙個乙個子元素都是 string 型別的雙向鍊錶,我們可以通過特定方法操作從鍊錶的頭部或者尾部進行新增刪除操作,這樣的 list 即可以看成是佇列,也可...