從用戶輸入URL開始會經歷哪些緩存

根據用戶發起一個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(磁盤陣列緩存)

相關文章
相關標籤/搜索