曰本美女∴一区二区特级A级黄色大片, 国产亚洲精品美女久久久久久2025, 页岩实心砖-高密市宏伟建材有限公司, 午夜小视频在线观看欧美日韩手机在线,国产人妻奶水一区二区,国产玉足,妺妺窝人体色WWW网站孕妇,色综合天天综合网中文伊,成人在线麻豆网观看

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

nginx中強緩存和協(xié)商緩存介紹

馬哥Linux運維 ? 來源:博客園dashery ? 2025-04-01 16:01 ? 次閱讀

一、強緩存(Strong Cache)

1.定義

? 強緩存直接告訴瀏覽器:在緩存過期前,無需與服務器通信,直接使用本地緩存。
? 由服務器通過響應頭Cache-ControlExpires控制。

2.響應頭

?Cache-Control: max-age=3600
表示資源在3600 秒(1小時)內有效(優(yōu)先級高于Expires)。
?Expires: Thu, 31 Dec 2030 2359 GMT
指定一個絕對過期時間(依賴于客戶端本地時間,可能存在誤差)。

3.Nginx 配置示例

location/static/ {
 # 設置強緩存:1年內有效
 add_headerCache-Control"public, max-age=31536000";
 expires1y;
}

4.行為

? 瀏覽器首次請求資源時,服務器返回資源并附帶緩存頭。
? 后續(xù)請求時,瀏覽器直接讀取本地緩存(狀態(tài)碼200 (from disk cache)),不發(fā)送請求到服務器。

5.適用場景

? 靜態(tài)資源(如 CSS、JS、圖片、字體文件)等長期不變的資源。

二、協(xié)商緩存(協(xié)商緩存,Weak Cache)

1.定義

? 協(xié)商緩存要求瀏覽器每次向服務器驗證緩存是否過期,若未過期則返回304 Not Modified,繼續(xù)使用本地緩存。
? 由服務器通過響應頭Last-ModifiedETag控制。

2.響應頭

?Last-Modified: Wed, 21 Oct 2023 0700 GMT
表示資源最后修改時間(精度為秒,可能因時間同步問題失效)。
?ETag: "5d8c72a5-264"
資源的唯一標識符(哈希值或版本號),精度更高。

3.Nginx 配置示例

location/dynamic/ {
 # 啟用協(xié)商緩存(默認已支持,無需顯式配置)
 add_headerLast-Modified"";
 etagon;
}

4.行為

瀏覽器首次請求資源時,服務器返回資源并附帶Last-Modified或ETag。

后續(xù)請求時,瀏覽器通過以下請求頭驗證緩存:
?If-Modified-Since: [Last-Modified值]
向服務器詢問資源是否在指定時間后修改過。
?If-None-Match: [ETag值]
向服務器驗證資源的ETag是否變化。

若資源未修改,服務器返回304 Not Modified,瀏覽器繼續(xù)使用緩存;若已修改,返回新資源(狀態(tài)碼200)。

5.適用場景

? 頻繁更新的資源(如 HTML 頁面、動態(tài) API 響應)。

三、關鍵區(qū)別

特性 強緩存 協(xié)商緩存
通信成本 無網絡請求(直接讀緩存) 需發(fā)送請求驗證緩存
響應狀態(tài)碼 200 (from disk cache) 304 Not Modified
優(yōu)先級 優(yōu)先于協(xié)商緩存 強緩存過期后觸發(fā)
適用資源 長期不變的靜態(tài)資源 頻繁更新的動態(tài)資源

四、Nginx 最佳實踐

混合使用兩種緩存

location/ {
 # 強緩存 1 小時,過期后啟用協(xié)商緩存
 add_headerCache-Control"public, max-age=3600";
 etagon;
}

按文件類型區(qū)分策略

# 圖片、字體等強緩存
location~* .(jpg|png|gif|woff2)${
 expires1y;
 add_headerCache-Control"public, max-age=31536000";
}

# HTML 文件禁用強緩存(總是協(xié)商)
location~* .html${
 add_headerCache-Control"no-cache, must-revalidate";
}

解決緩存更新問題
? 強緩存資源建議通過文件名哈希控制版本(如main.abcd1234.js)。
? 協(xié)商緩存可通過修改ETag或Last-Modified觸發(fā)更新。

五、調試工具

瀏覽器開發(fā)者工具(Network 標簽):
? 查看200 (from disk cache)(強緩存)或304 Not Modified(協(xié)商緩存)。
? 檢查請求頭中的Cache-Control、If-Modified-Since、If-None-Match。

命令行工具:

curl -I http://example.com/resource.js

通過合理配置強緩存和協(xié)商緩存,可以顯著提升網站性能,減少服務器負載。

鏈接:https://www.cnblogs.com/ydswin/p/18757690

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 緩存
    +關注

    關注

    1

    文章

    245

    瀏覽量

    27008
  • 瀏覽器
    +關注

    關注

    1

    文章

    1040

    瀏覽量

    36008
  • nginx
    +關注

    關注

    0

    文章

    163

    瀏覽量

    12459

原文標題:什么是nginx的強緩存和協(xié)商緩存

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    Nginx緩存配置詳解

    Nginx 是一個功能強大的 Web 服務器和反向代理服務器,它可以用于實現(xiàn)靜態(tài)內容的緩存緩存可以分為客戶端緩存和服務端緩存。
    的頭像 發(fā)表于 05-07 14:03 ?289次閱讀
    <b class='flag-5'>Nginx</b><b class='flag-5'>緩存</b>配置詳解

    什么是追蹤緩存/轉接卡?

    什么是追蹤緩存/轉接卡?  追蹤緩存  在奔騰IV一級緩存,一般一級緩存的指令
    發(fā)表于 02-04 10:40 ?498次閱讀

    內容中心網絡基于緩存索引的緩存路由機制

    內容中心網絡基于緩存索引的緩存路由機制_王好齊
    發(fā)表于 01-07 20:49 ?0次下載

    詳解瀏覽器的緩存機制

    緩存一直是前端優(yōu)化的主戰(zhàn)場,利用好緩存就成功了一半。本篇從HTTP請求和響應的頭域入手,讓你對瀏覽器緩存有個整體的概念。最終你會發(fā)現(xiàn)緩存,
    發(fā)表于 09-30 11:27 ?0次下載
    詳解瀏覽器的<b class='flag-5'>緩存</b>機制

    Mybatis緩存之一級緩存

    本文主要講mybatis的一級緩存,一級緩存是SqlSession級別的緩存。mybatis提供查詢緩存,用于減輕數(shù)據壓力,提高數(shù)據庫性能。mybaits提供一級
    發(fā)表于 11-27 20:44 ?1290次閱讀
    Mybatis<b class='flag-5'>緩存</b>之一級<b class='flag-5'>緩存</b>

    渲染的幀緩存和深度緩存

    渲染涉及大量的緩存,這里緩存只是一個簡單的存有像素數(shù)據的矩形內存塊,最重要緩存是幀緩存和深度緩存。
    的頭像 發(fā)表于 05-14 11:44 ?6872次閱讀
    渲染<b class='flag-5'>中</b>的幀<b class='flag-5'>緩存</b>和深度<b class='flag-5'>緩存</b>

    一文知道Nginx服務器的緩存原理和機制

    Nginx服務器的緩存原理,是在學習過程中比較重要的一個知識點,學習通透之后,對于自己的能力會有不小的提升——而且提升不只限于nginx一方面,技術理論一通百通,對于理解其他內容也會有很大幫助。
    的頭像 發(fā)表于 10-05 09:01 ?2560次閱讀
    一文知道<b class='flag-5'>Nginx</b>服務器的<b class='flag-5'>緩存</b>原理和機制

    什么是Web緩存,HTTP緩存和瀏覽器緩存的區(qū)別

    前端緩存主要是分為HTTP緩存和瀏覽器緩存。其中HTTP緩存是在HTTP請求傳輸時用到的緩存,主要在服務器代碼上設置;而瀏覽器
    發(fā)表于 09-13 04:17 ?9597次閱讀
    什么是Web<b class='flag-5'>緩存</b>,HTTP<b class='flag-5'>緩存</b>和瀏覽器<b class='flag-5'>緩存</b>的區(qū)別

    緩存的基本原理 緩存的分類

    緩存的主要手段有:瀏覽器緩存、CDN、反向代理、本地緩存、分布式緩存、數(shù)據庫緩存。
    發(fā)表于 06-13 12:04 ?5023次閱讀

    如何在SpringBoot解決Redis的緩存穿透等問題

    今天給大家介紹一下如何在SpringBoot解決Redis的緩存穿透、緩存擊穿、緩存雪崩的問題。
    的頭像 發(fā)表于 04-28 11:35 ?867次閱讀

    Caffeine教程緩存介紹

    緩存(Cache)在代碼世界無處不在。從底層的CPU多級緩存,到客戶端的頁面緩存,處處都存在著緩存的身影。
    的頭像 發(fā)表于 05-22 11:01 ?1152次閱讀
    Caffeine教程<b class='flag-5'>緩存</b><b class='flag-5'>介紹</b>

    聊聊本地緩存和分布式緩存

    本地緩存 :應用緩存組件,緩存組件和應用在同一進程,緩存的讀寫非??欤瑳]有網絡開銷。但各應
    發(fā)表于 06-11 15:12 ?994次閱讀
    聊聊本地<b class='flag-5'>緩存</b>和分布式<b class='flag-5'>緩存</b>

    如何使用緩存

    緩存技術被認為是減輕服務器負載、降低網絡擁塞、增強Web可擴展性的有效途徑之一,其基本思想是利用客戶訪問的時間局部性(Temproral Locality)原理, 將客戶訪問過的內容在Cache
    的頭像 發(fā)表于 10-08 14:07 ?817次閱讀

    Redis緩存預熱+緩存雪崩+緩存擊穿+緩存穿透要點簡析

    緩存預熱就是系統(tǒng)上線后,提前將相關的緩存數(shù)據直接加載到緩存系統(tǒng)。
    的頭像 發(fā)表于 12-25 09:41 ?1070次閱讀
    Redis<b class='flag-5'>緩存</b>預熱+<b class='flag-5'>緩存</b>雪崩+<b class='flag-5'>緩存</b>擊穿+<b class='flag-5'>緩存</b>穿透要點簡析

    緩存之美——如何選擇合適的本地緩存

    Guava cache是Google開發(fā)的Guava工具包中一套完善的JVM本地緩存框架,底層實現(xiàn)的數(shù)據結構類似于ConcurrentHashMap,但是進行了更多的能力拓展,包括緩存過期時間設置、緩存容量設置、多種淘汰策略、
    的頭像 發(fā)表于 11-17 14:24 ?690次閱讀
    <b class='flag-5'>緩存</b>之美——如何選擇合適的本地<b class='flag-5'>緩存</b>?