根據用戶發起一個HTTP請求開始,會經歷那些緩存。web
用戶層數據庫
DNS瀏覽器
DNS系統本地緩存(客戶端操做系統DNS緩存)緩存
LocalDNS緩存(本地DNS提供商的緩存)服務器
DNS緩存服務器(專用的DNS緩存服務器)分佈式
瀏覽器DNS緩存(Firefox默認60秒,HTML5的新特性:DNS Prefetching)fetch
應用程序DNS緩存(Java(JVM)、PHP語言自己的DNS緩存)ui
瀏覽器操作系統
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(數據緩存、指令緩存) L二、L3)
內存Cache(內存高速緩存、Page Cache)
物理層
磁盤
Disk Cache(磁盤緩存(Cache memory))
硬件
Raid Cache(磁盤陣列緩存)