日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NGINX下配置CACHE-CONTROL

發(fā)布時間:2024/7/19 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NGINX下配置CACHE-CONTROL 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

?

轉(zhuǎn)載的,那個頁面讓關(guān)了,,沒標明請諒解。

HTTP協(xié)議的Cache -Control指定請求和響應(yīng)遵循的緩存機制。
在請求消息或響應(yīng)消息中設(shè)置 Cache-Control并不會影響另一個消息處理過程中的緩存處理過程。
請求時的緩存指令包括no-cache、no-store、max-age、 max-stale、min-fresh、only-if-cached等。
響應(yīng)消息中的指令包括public、private、no-cache、no- store、no-transform、must-revalidate、proxy-revalidate、max-age。

瀏覽器中關(guān)于Cache的3屬性:

Cache-Control:

設(shè)置相對過期時間, max-age指明以秒為單位的緩存時間. 若對靜態(tài)資源只緩存一次, 可以設(shè)置max-age的值為315360000000 (一萬年).

Http協(xié)議的cache-control的常見取值及其組合釋義:

no-cache: 數(shù)據(jù)內(nèi)容不能被緩存, 每次請求都重新訪問服務(wù)器, 若有max-age, 則緩存期間不訪問服務(wù)器.

no-store: 不僅不能緩存, 連暫存也不可以(即: 臨時文件夾中不能暫存該資源)

private(默認): 只能在瀏覽器中緩存, 只有在第一次請求的時候才訪問服務(wù)器, 若有max-age, 則緩存期間不訪問服務(wù)器.

public: 可以被任何緩存區(qū)緩存, 如: 瀏覽器、服務(wù)器、代理服務(wù)器等

max-age: 相對過期時間, 即以秒為單位的緩存時間.

no-cache, private: 打開新窗口時候重新訪問服務(wù)器, 若設(shè)置max-age, 則緩存期間不訪問服務(wù)器.

private, 正數(shù)的max-age: 后退時候不會訪問服務(wù)器

no-cache, 正數(shù)的max-age: 后退時會訪問服務(wù)器

點擊刷新: 無論如何都會訪問服務(wù)器.

Expires:

設(shè)置以分鐘為單位的絕對過期時間, 優(yōu)先級比Cache-Control低, 同時設(shè)置Expires和Cache-Control則后者生效.

Last-Modified:

該資源的最后修改時間, 在瀏覽器下一次請求資源時, 瀏覽器將先發(fā)送一個請求到服務(wù)器上, 并附上If-Unmodified-Since頭來說明瀏覽器所緩存資源的最后修改時間, 如果服務(wù)器發(fā)現(xiàn)沒有修改, 則直接返回304(Not Modified)回應(yīng)信息給瀏覽器(內(nèi)容很少), 如果服務(wù)器對比時間發(fā)現(xiàn)修改了, 則照常返回所請求的資源.

?

注意:

Last-Modified屬性通常和Expires或Cache-Control屬性配合使用, 因為即使瀏覽器設(shè)置緩存, 當用戶點擊”刷新”按鈕時, 瀏覽器會忽略緩存繼續(xù)向服務(wù)器發(fā)送請求, 這時Last-Modified將能夠很好的減小回應(yīng)開銷.

?

ETag將返回給瀏覽器一個資源ID, 如果有了新版本則正常發(fā)送并附上新ID, 否則返回304, 但是在服務(wù)器集群情況下, 每個服務(wù)器將返回不同的ID, 因此不建議使用ETag.

?

以上描述的客戶端瀏覽器緩存是指存儲位置在客戶端瀏覽器, 但是對客戶端瀏覽器緩存的實際設(shè)置工作是在服務(wù)器上的資源中完成的. 雖然剛才我們介紹了有關(guān)于客戶端瀏覽器緩存的屬性, 但是實際上對這些屬性的設(shè)置工作都需要在服務(wù)器的資源中做設(shè)置. 我們有兩種操作手段對瀏覽器緩存進行設(shè)置, 一個是通過頁面指令聲明來設(shè)置, 另外一個是通過編程方式來設(shè)置.

Nginx的ngx_http_headers_module模塊可以對Cache-Control頭相關(guān)的東西進行配置
例如:
? ? # 相關(guān)頁面設(shè)置Cache-Control頭信息
? ? 例一:
? ?if ($request_uri ~* "^/$|^/search/.+/|^/company/.+/") {
? ? ?add_header??? Cache-Control? max-age=3600;
? ? }

? ?例二:

location ~ .*\.(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;
}

例三: location ~ .*\.(js|css)$ {
expires 10d;
}

轉(zhuǎn)載于:https://www.cnblogs.com/guxiaobei/p/8287763.html

總結(jié)

以上是生活随笔為你收集整理的NGINX下配置CACHE-CONTROL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。