您好,登錄后才能下訂單哦!
一、瀏覽器對緩存的處理:Internet選項
★ 控制請求服務器策略:是忽略資源的緩存策略的情況下額外強制請求服務器的意思。
★ 檢查存儲的頁面較新版本
1.每次訪問網頁時
不管是否有緩存、資源狀態是否過期,都會再次請求服務器。
2.每次啟動Internet Explorer時
不管是否有緩存、資源狀態是否過期,都會再次請求服務器。
3.自動
大體上和2是一樣的,只是對于圖片的策略有點不同。
4.從不
完全按照資源的緩存策略來請求服務器。
★ F5 刷新:請求服務端,但是會根據和服務器對比文件來確定是否下載
★ Ctrl + F5刷新:一定會去服務器下載。
二、緩存控制策略
★Last-Modified/If-Modified-Since要配合Cache-Control使用,Etag/If-None-Match也要配合Cache-Control使用。
ps: 分布式系統里多臺機器間文件的last-modified必須保持一致,以免負載均衡到不同機器導致比對失敗
分布式系統盡量關閉掉Etag(每臺機器生成的etag都會不一樣)
★HTML通過meta的http-equiv屬性控制瀏覽器緩存策略:通過設置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瀏覽器才識別,請求頭中不會體現,但是確實有效果
Cache-control: http 1.1
三、Nginx設置瀏覽器緩存
★Nginx設置瀏覽器緩存:可以在http 、server、location節點中添加。可以設置各種資源的緩存策略,不僅僅是HTML。而<meta http-equiv>節點只針對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"/>
總結
以上所述是小編給大家介紹的Nginx與瀏覽器緩存的處理方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。