Nginx與瀏覽器緩存的處理方法
一、瀏覽器對緩存的處理:Internet選項
★ 控制請求服務(wù)器策略:是忽略資源的緩存策略的情況下額外強制請求服務(wù)器的意思。
★ 檢查存儲的頁面較新版本
1.每次訪問網(wǎng)頁時
不管是否有緩存、資源狀態(tài)是否過期,都會再次請求服務(wù)器。
2.每次啟動Internet Explorer時
不管是否有緩存、資源狀態(tài)是否過期,都會再次請求服務(wù)器。
3.自動
大體上和2是一樣的,只是對于圖片的策略有點不同。
4.從不
完全按照資源的緩存策略來請求服務(wù)器。
★ F5 刷新:請求服務(wù)端,但是會根據(jù)和服務(wù)器對比文件來確定是否下載
★ Ctrl + F5刷新:一定會去服務(wù)器下載。
二、緩存控制策略
★Last-Modified/If-Modified-Since要配合Cache-Control使用,Etag/If-None-Match也要配合Cache-Control使用。
ps: 分布式系統(tǒng)里多臺機器間文件的last-modified必須保持一致,以免負載均衡到不同機器導致比對失敗
分布式系統(tǒng)盡量關(guān)閉掉Etag(每臺機器生成的etag都會不一樣)
★HTML通過meta的http-equiv屬性控制瀏覽器緩存策略:通過設(shè)置Pragma和Cache-control和expires控制
ps:只能控制html的緩存策略,不能控制css/js/圖片的緩存策略。
Cache-control的max-age和expires同時存在,那么先處理max-age。
Cache-control指定了no-cache后,max-age和expires。
Pragma: http 1.0 IE瀏覽器才識別,請求頭中不會體現(xiàn),但是確實有效果
Cache-control: http 1.1
三、Nginx設(shè)置瀏覽器緩存
★Nginx設(shè)置瀏覽器緩存:可以在http 、server、location節(jié)點中添加??梢栽O(shè)置各種資源的緩存策略,不僅僅是HTML。而<meta http-equiv>節(jié)點只針對HTML
#add_header Cache-Control no-cache; #add_header Cache-Control private; add_header Cache-Control max-age=7200; if ($request_filename ~* ^.*?\.(ico|jpeg|gif|jpg|png|woff)$){ expires 7d; } if ($request_filename ~* ^.*?\.(js|css)$){ expires 7d; } if ($request_filename ~* ^.*?\.(html|htm)$){ expires 3d; }
★Nginx中的配置會覆蓋HTML的http-equiv="Cache-control"配置。
但是如果HTML中的加了下面3個標簽,瀏覽器端效果還是只能no-cache。(從效果上來看:Nginx的Cache-control配置無效)
因為Nginx的Cache-control配置只是覆蓋了Cache-control(如果html加的是后面兩個標簽,Nginx還是有效的),而Pragma仍然起著作用。
<meta http-equiv="Pragma" content="no-cache"/> <meta http-equiv="Cache-control" content="no-cache;max-age=0"/> <meta http-equiv="expires" content="0"/>
總結(jié)
以上所述是小編給大家介紹的Nginx與瀏覽器緩存的處理方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Nginx可視化管理軟件(Nginx Proxy Manager)的使用
Nginx Proxy Manager是一款開源的Nginx可視化管理界面,本文就來介紹一下Nginx Proxy Manager的使用,感興趣的可以了解一下2024-03-03nginx proxy_pass反向代理配置中url后加不加/的區(qū)別介紹
這篇文章主要給大家介紹了關(guān)于nginx proxy_pass反向代理配置中url后加不加/的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-11-11Nginx利用Lua+Redis實現(xiàn)動態(tài)封禁IP的方法
在站點遇到攻擊且無明顯攻擊特征,造成站點訪問慢,nginx不斷返回502等錯誤時,可利用nginx+lua+redis對該IP進行封禁,這篇文章主要給大家介紹了關(guān)于Nginx利用Lua+Redis實現(xiàn)動態(tài)封禁IP的相關(guān)資料,需要的朋友可以參考下2018-12-12Nginx中l(wèi)ocation匹配以及rewrite重寫跳轉(zhuǎn)詳解
訪問重寫 rewrite 是 Nginx HTTP 請求處理過程中的一個重要功能,下面這篇文章主要給大家介紹了Nginx中l(wèi)ocation匹配以及rewrite重寫跳轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下2022-03-03使用Nginx進行URL轉(zhuǎn)發(fā)的配置案例
Nginx是一個高性能的Web服務(wù)器和反向代理服務(wù)器,它還可以用于URL轉(zhuǎn)發(fā),在本教學文章中,我們將從安裝Nginx開始,逐步介紹配置步驟,并展示一個URL轉(zhuǎn)發(fā)的案例,感興趣的朋友可以參考下2023-09-09