靜態內容緩存設置
Ⅰ Nginx緩存設置教程
| 這篇文章主要介紹了Nginx緩存設置案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下 |
在開發調試web的時候,經常會碰到因瀏覽器緩存(cache)而經常要去清空緩存或者強制刷新來測試的煩惱,提供下apache不緩存配置和nginx不緩存配置的設置。在常用的緩存設置裡面有兩種方式,都是使用add_header來設置:分別為Cache-Control和Pragma。
對於站點中不經常修改的靜態內容(如圖片,JS,CSS),可以在伺服器中設置expires過期時間,控制瀏覽器緩存,達到有效減小帶寬流量,降低伺服器壓力的目的。
以Nginx伺服器為例:
【背景】:Expires是Web伺服器響應消息頭欄位,在響應http請求時告訴瀏覽器在過期時間前瀏覽器可以直接從瀏覽器緩存取數據,而無需再次請求。
【相關資料】
1、Cache-control策略
Cache-Control與Expires的作用一致,都是指明當前資源的有效期,控制瀏覽器是否直接從瀏覽器緩存取數據還是重新發請求到伺服器取數據。只不過Cache-Control的選擇更多,設置更細致,如果同時設置的話,其優先順序高於Expires。
http協議頭Cache-Control :
值可以是public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age
各個消息中的指令含義如下:
Last-Modified/If-Modified-Since
其最終達到的就是等效於設置這三類html緩存技術:
Ⅱ 怎樣設置靜態網頁緩存
對於IE瀏覽器來說,按照以下方法設置:
點擊「工具」→「Internet 選項」→「常規」標簽→「瀏覽歷史記錄」「設置」→「移動文件夾」。然後指定你要使用哪個文件夾做為IE緩存目錄。
Ⅲ 靜態資源常用的一種緩存方式
http緩存分為強緩存和協商緩存。
強緩存並不會請求伺服器,同時響應碼會返回200。比如使用的配置cache-control:max-age=1200
在項目中緩存圖片等靜態資源常用的是協商緩存。
在第一次請求靜態資源的時候,伺服器會根據資源內容生成etag, 在響應頭里返回給瀏覽器,在下次請求的時候瀏覽器會在頭部配置If-None-Match,攜帶etag來向伺服器詢問資源是否發生改變。若是沒有發生改變會返回304,這樣瀏覽器就不會從伺服器重新獲取資源而是直接使用本地緩存。採用etag可以解決文件名沒有發生變化但是文件內容被修改的問題。
通常會跟cache-control: no-cache 在一起配合使用。no-cache是指瀏覽器可以緩存響應,但是必須要向原始伺服器提交驗證請求。
參考:
https://www.imperva.com/learn/performance/cache-control/
https://blog.csdn.net/aimeimeiTS/article/details/105731709
https://www.zoo.team/article/http-cache
https://imweb.io/topic/5795dcb6fb312541492eda8c
https://aotu.io/notes/2016/09/22/http-caching/index.html
Ⅳ 關於php如何實現靜態緩存問題如下
樓主,你所說的這個的實現則是
+
根據文件來判斷的,每個文件在生成的時候都有一個創建時間,
+
而在資料庫的設計中,則是存在這一個修改時間,
+
也就是用資料庫來存儲和計算這兩個值的差值或者是是否相同,
+
再來判斷是否要重新生成實質性的HTML文件..
根據樓主的描述,大致的解決思路如上..
而有關
ob_start
的理解,則是:
+
ob_start
先將數據放入
ob
緩存
+
ob_flush
再將緩存數據輸出到程序緩存中
+
ob_end_clean
清空緩存並且關閉緩存
+
程序輸出
而在頁面靜態化中,緩存的方法有:
+
ob緩存
+
smarty
緩存
+
ThinkPHP
緩存
+
模版緩存
靜態化又分為:
+
實質的靜態化
+
偽靜態化
這是本人的理解,樓主可以在此基礎上加強,形成自己的理解..
Ⅳ 如何為WordPress和Typecho設置靜態資源緩存
在HTTP標頭中為靜態資源設置過期日期或最長存在時間,可指示瀏覽器從本地磁碟中載入以前下載的資源,而不是通過網路載入。這樣, 網站載入速度會更快.
下面的代碼都需要放到.htaccess中才能生效. 推薦設置過期時間為一個月, 即: max-age=2592000.
####通過FilesMatch設置
<FilesMatch ".(flv|gif|jpg|jpeg|png|ico|swf|css|js)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
####通過mod_expires.c設置
<IfMole mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 months"
ExpiresByType text/html "access plus 1 months"
ExpiresByType image/gif "access plus 1 months"
ExpiresByType image/jpeg "access plus 2 months"
ExpiresByType application/x-shockwave-flash "access plus 2 months"
ExpiresByType application/x-javascript "access plus 2 months"
</IfMole>
如需針對具體的資源類型需要這樣:
ExpiresByType image/gif "access plus 5 hours 3 minutes"
更多規則參考Apache Mole mod_expires.
參考來源:
Cache Control with htaccess FILES MATCH
Apache里配置 mod_expires 和 mod_headers 以支持CACHE
Tags: wordpress靜態資源緩存, typecho靜態資源緩存, wordpress瀏覽器緩存, typecho瀏覽器緩存, 靜態資源緩存, 瀏覽器緩存,wordpress cache expire, typecho cache expire
Ⅵ 如何設置靜態內容緩存時間
一、打開IIS,滑鼠右鍵你要設置的網站,然後「屬性」
(第一步操作)
二、選擇「HTTP頭」選項卡,勾選「啟用內容過期」,選中「立即過期」,然後「確定」。
(第二步操作)
解釋一下這一步的效果。設置此網站所有內容都不進行緩存,也就是每次訪問都全新載入。
三、展開網站,找到要進行緩存的目錄。(一般是存放上傳文件、圖片、JS等文件的目錄)然後「滑鼠右鍵」----「屬性」
(第三步操作)
四、選擇「HTTP頭」選項卡,勾選「啟用內容過期」,選中「此時間段後過期」,設置過期時間,然後「確定」
(第四步操作)
OK,這時候已經設置成功了。