Definition:HTTP的緩存策略指的是控制瀏覽器或代理服務器緩存哪些資源、以及如何使用和存儲這些資源的規(guī)則。
常用的HTTP緩存策略包括:強制緩存、協(xié)商緩存、禁止緩存、條件緩存等策略。
本文只介紹其中最為常用的強制緩存與協(xié)商緩存。
強制緩存
Introduction:瀏覽器在訪問資源之前會檢查本地是否已經(jīng)存在該資源的緩存副本,如果存在且未過期,則直接從緩存加載。此時不會向服務器發(fā)送任何請求。
簡單而言:只有瀏覽器判斷緩存無過期,直接使用瀏覽器本地緩存,主動方是瀏覽器。
實現(xiàn)方式:在HTTP響應頭存放Cache-Control相對時間或Expires絕對時間來判斷資源是否過期,若同時存在,Cache-Control的優(yōu)先級會高一些,所以一般用前者。
Cache-Control |
緩存控制,可以設置max-age(最大緩存時間)、no-cache(不使用緩存)、no-store(不存儲緩存副本)等指令。 |
Expires | 資源到期時間,與Cache-Control的max-age類似,但是Expires是一個具體的日期和時間。 |
協(xié)商緩存
Introduction:瀏覽器會向服務器發(fā)送請求,服務器會返回資源的元數(shù)據(jù)(例如Last-Modified或ETag),瀏覽器根據(jù)元數(shù)據(jù)判斷資源是否發(fā)生了變化,如果沒有變化,則可以直接從緩存加載。
簡單而言:需要通過服務端告知瀏覽器可以使用本地緩存資源,主動方是服務端。
實現(xiàn)方式兩種:
? ? ? ? ① 在HTTP響應頭帶上Last-Modified字段記錄最后修改時間,然后在HTTP請求頭帶If-Modified-Since比較兩者時間。兩者都是記錄頁面最后修改時間,一致則返回304表示未改變;
? ? ? ? ② 在HTTP響應頭帶上Etag唯一標識響應資源,然后請求頭帶上IF-None-Match字段(攜帶的值就是Etag的值),該方式能以防時間被篡改,更為可靠,所以Etag這種方式的優(yōu)先級也會更高。
Last-Modified |
資源的最后修改時間,與If-Modified-Since一起使用,用于判斷資源是否已經(jīng)過期。 |
ETag |
資源的唯一標識符,與If-None-Match一起使用,用于判斷資源是否已經(jīng)過期。 |
If-Modified-Since |
上次訪問資源時返回的Last-Modified值,用于判斷資源是否已經(jīng)過期,如果未過期,則返回304 Not Modified。文章來源:http://www.zghlxwxcb.cn/news/detail-664502.html |
If-None-Match | 上次訪問資源時返回的ETag值,用于判斷資源是否已經(jīng)過期,如果未過期,則返回304 Not Modified。 |
這些緩存策略的使用目的,最終都是為了:減少冗余的數(shù)據(jù)傳輸,緩解服務器壓力,提高網(wǎng)站性能,給用戶更好的使用體驗。文章來源地址http://www.zghlxwxcb.cn/news/detail-664502.html
到了這里,關(guān)于HTTP的緩存策略-強制緩存與協(xié)商緩存的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!