根據使用者發起一個HTTP請求開始,會經歷那些快取。
-
使用者層
-
DNS
-
DNS系統本地快取(客戶端作業系統DNS快取)
-
LocalDNS快取(本地DNS提供商的快取)
-
DNS快取伺服器(專用的DNS快取伺服器)
-
瀏覽器DNS快取(Firefox預設60秒,HTML5的新特性:DNS Prefetching)
-
應用程式DNS快取(Java(JVM)、PHP語言本身的DNS快取)
-
-
瀏覽器
-
HMTL5新特性:Link Prefetching
-
基於最後修改時間的HTTP快取協商: Last-Modified
-
基於過期時間的HTTP快取協商: Expires、cache-control
-
基於打標籤的HTTP快取協商: Etag
-
-
-
代理層
-
CDN,反向代理快取(基於Squid、Varnish、Nginx、ATS等,一般有多級)
-
-
web層
-
直譯器
-
Opcache(操作碼快取)
-
-
web伺服器
-
Web伺服器快取 (Apache(mod_cache)、Nginx(FastCGI快取、Proxy cache))
-
-
-
應用層
-
應用服務
-
動態內容快取(快取動態記憶體輸出)
-
Local Cache(應用本地快取,PHP(Yac、Xcache) Java(ehcache))
-
頁面靜態化(動態頁面靜態化,專門用於靜態化的CMS)
-
-
-
資料層
-
分散式快取
-
分散式快取(Memcache、Redis)
-
-
資料庫
-
MySQL(innodb快取、MYISAM快取)
-
-
-
系統層
-
作業系統
-
CPU Cache(L1(資料快取、指令快取) L2、L3)
-
記憶體Cache(記憶體快取記憶體、Page Cache)
-
-
-
物理層
-
磁碟
-
Disk Cache(磁碟快取(Cache memory))
-
-
硬體
-
Raid Cache(磁碟陣列快取)
-
-