- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
在開(kāi)發(fā)調試web的時(shí)候,經(jīng)常會(huì )碰到因瀏覽器緩存(cache)而經(jīng)常要去清空緩存或者強制刷新來(lái)測試的煩惱,提供下apache不緩存配置和nginx不緩存配置的設置。在常用的緩存設置里面有兩種方式,都是使用add_header來(lái)設置:分別為Cache-Control和Pragma。
nginx: location ~ .*\.(css|js|swf|php|htm|html )$ { add_header Cache-Control no-store;add_header Pragma no-cache; }
對于站點(diǎn)中不經(jīng)常修改的靜態(tài)內容(如圖片,JS,CSS),可以在服務(wù)器中設置expires過(guò)期時(shí)間,控制瀏覽器緩存,達到有效減小帶寬流量,降低服務(wù)器壓力的目的。
以Nginx服務(wù)器為例:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { #過(guò)期時(shí)間為30天, #圖片文件不怎么更新,過(guò)期可以設大一點(diǎn), #如果頻繁更新,則可以設置得小一點(diǎn)。 expires 30d; } location ~ .*\.(js|css)$ { expires 10d; }
【背景】:Expires是Web服務(wù)器響應消息頭字段,在響應http請求時(shí)告訴瀏覽器在過(guò)期時(shí)間前瀏覽器可以直接從瀏覽器緩存取數據,而無(wú)需再次請求。
【相關(guān)資料】
1、Cache-control策略
Cache-Control與Expires的作用一致,都是指明當前資源的有效期,控制瀏覽器是否直接從瀏覽器緩存取數據還是重新發(fā)請求到服務(wù)器取數據。只不過(guò)Cache-Control的選擇更多,設置更細致,如果同時(shí)設置的話(huà),其優(yōu)先級高于Expires。
http協(xié)議頭Cache-Control :
值可以是public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age
各個(gè)消息中的指令含義如下:
Public指示響應可被任何緩存區緩存。
Private指示對于單個(gè)用戶(hù)的整個(gè)或部分響應消息,不能被共享緩存處理。這允許服務(wù)器僅僅描述當用戶(hù)的部分響應消息,此響應消息對于其他用戶(hù)的請求無(wú)效。
no-cache指示請求或響應消息不能緩存
no-store用于防止重要的信息被無(wú)意的發(fā)布。在請求消息中發(fā)送將使得請求和響應消息都不使用緩存。
max-age指示客戶(hù)機可以接收生存期不大于指定時(shí)間(以秒為單位)的響應。
min-fresh指示客戶(hù)機可以接收響應時(shí)間小于當前時(shí)間加上指定時(shí)間的響應。
max-stale指示客戶(hù)機可以接收超出超時(shí)期間的響應消息。如果指定max-stale消息的值,那么客戶(hù)機可以接收超出超時(shí)期指定值之內的響應消息。
Last-Modified/If-Modified-Since
Last-Modified/If-Modified-Since要配合Cache-Control使用。
Last-Modified:標示這個(gè)響應資源的最后修改時(shí)間。web服務(wù)器在響應請求時(shí),告訴瀏覽器資源的最后修改時(shí)間。
If-Modified-Since:當資源過(guò)期時(shí)(使用Cache-Control標識的max-age),發(fā)現資源具有Last-Modified聲明,則再次向web服務(wù)器請求時(shí)帶上頭 If-Modified-Since,表示請求時(shí)間。web服務(wù)器收到請求后發(fā)現有頭If-Modified-Since 則與被請求資源的最后修改時(shí)間進(jìn)行比對。若最后修改時(shí)間較新,說(shuō)明資源又被改動(dòng)過(guò),則響應整片資源內容(寫(xiě)在響應消息包體內),HTTP 200;若最后修改時(shí)間較舊,說(shuō)明資源無(wú)新修改,則響應HTTP 304 (無(wú)需包體,節省瀏覽),告知瀏覽器繼續使用所保存的cache。
其最終達到的就是等效于設置這三類(lèi)html緩存技術(shù):
<meta http-equiv="pragma" content="no-cache"/> <meta http-equiv="Cache-Control" content="no-cache, must-revalidate"/> <meta http-equiv="expires" content="0"/>
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP