摘要:究其原因是因為也是設(shè)置時間來做期限,但是它設(shè)置的是到期時間,并且要是格式的時間,最致命的是它的到期時間是依據(jù)系統(tǒng)時間來看的,如果系統(tǒng)時間錯誤超過了的到期時間,那么就會請求不到資源。
前記
HTTP緩存是web性能優(yōu)化的一個常識,目的是當(dāng)你第二次請求時,將JS、CSS、的請求速度加快,但是html卻不能設(shè)置Cache-Control,這是為什么,可以想一想
Cache-Control 如何用response.setHeader("Cache-Control","max-age=315360000")
響應(yīng)設(shè)置響應(yīng)頭,max-age是設(shè)置緩存停留時間,單位為秒,從你接收到那個響應(yīng)開始計時,一般是設(shè)置10年或者1年
功能設(shè)置Cache-Control可以在一段時間內(nèi)不訪問服務(wù)器,直接用本地內(nèi)存或者硬盤中獲取響應(yīng),因此極大的加快了訪問速度,關(guān)鍵在于不會發(fā)送HTTP請求。
更新資源當(dāng)緩存那么久,那如果緩存資源更新了怎么辦
可以添加查詢參數(shù),如?v=...這樣就可以更新緩存了
還有就是可以在入口html文件處把url變一下,和以前的都不一樣,也可以更新緩存
還有就是在文件名前面生成一串字符,變更文件名,也可以更新緩存
ETag說到ETag就不得不提md5摘要算法,這個算法可以計算一個文件,然后生成一串字符,相同文件內(nèi)容生成的字符串是一樣的,如果內(nèi)容不相同生成的字符串就會不一樣,并且內(nèi)容差別越小,字符串差別越大
如何用response.setHeader("ETag", fileMd5)
fileMd5就是md5生成的字符串
功能設(shè)置了ETag后,以后每次訪問服務(wù)器都要設(shè)置頭If-None-Match來帶上那串字符串,資源未變更,服務(wù)器就會返回304,和Cache-Control不同就是,ETag還是會請求,不過資源不變的話,響應(yīng)體是空的。
更新資源這就非常簡單了,當(dāng)服務(wù)器更換了一個資源,那生成的字符串就會不一樣,當(dāng)If-None-Match帶著原來的字符串來比較時,發(fā)現(xiàn)字符串不一樣,那就會下載新的資源
過時的ExpiresExpires也是一個響應(yīng)頭,功能和Cache-Control差不多,但是現(xiàn)在逐漸被淘汰了,并且如果在Cache-Control響應(yīng)頭設(shè)置了 "max-age" 或者 "s-max-age" 指令,那么Expires頭會被忽略。
究其原因是因為Expires也是設(shè)置時間來做期限,但是它設(shè)置的是到期時間,并且要是GMT格式的時間,最致命的是它的到期時間是依據(jù)系統(tǒng)時間來看的,如果系統(tǒng)時間錯誤超過了Expires的到期時間,那么就會請求不到資源。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/97106.html
摘要:但遺憾的是,該響應(yīng)已經(jīng)過期。大多數(shù)情況下,不是必需的,因為明確的緩存信息例如已表示響應(yīng)是可以緩存的。表示響應(yīng)只為單個用戶緩存,因此不允許中間緩存對其進行緩存。這樣,即使文件緩存了,也可以得到更新。 在上一篇文章中,我們講到造成網(wǎng)絡(luò)性能下降的主要原因是延遲,而非帶寬。那么為了更好地讓我們的網(wǎng)站能快速響應(yīng)用戶的請求,我們就必須對一些常用資源進行緩存,以免每次用戶訪問都請求一遍,這也是網(wǎng)站性...
摘要:那我們?nèi)绾蝺?yōu)化頁面性能,提高頁面加載速度呢這是本文主要要探討的問題,然而性能優(yōu)化是個綜合性問題,沒有標(biāo)準(zhǔn)答案,想要面面俱到羅列出來,并非易事。三利用瀏覽器緩存對于應(yīng)用來說,緩存是提升頁面性能同時減少服務(wù)器壓力的利器。 引子 互聯(lián)網(wǎng)有一項著名的8秒原則。用戶在訪問Web網(wǎng)頁時,如果時間超過8秒就會感到不耐煩,如果加載需要太長時間,他們就會放棄訪問。大部分用戶希望網(wǎng)頁能在2秒之內(nèi)就完成加載...
摘要:那我們?nèi)绾蝺?yōu)化頁面性能,提高頁面加載速度呢這是本文主要要探討的問題,然而性能優(yōu)化是個綜合性問題,沒有標(biāo)準(zhǔn)答案,想要面面俱到羅列出來,并非易事。三利用瀏覽器緩存對于應(yīng)用來說,緩存是提升頁面性能同時減少服務(wù)器壓力的利器。 引子 互聯(lián)網(wǎng)有一項著名的8秒原則。用戶在訪問Web網(wǎng)頁時,如果時間超過8秒就會感到不耐煩,如果加載需要太長時間,他們就會放棄訪問。大部分用戶希望網(wǎng)頁能在2秒之內(nèi)就完成加載...
摘要:那我們?nèi)绾蝺?yōu)化頁面性能,提高頁面加載速度呢這是本文主要要探討的問題,然而性能優(yōu)化是個綜合性問題,沒有標(biāo)準(zhǔn)答案,想要面面俱到羅列出來,并非易事。三利用瀏覽器緩存對于應(yīng)用來說,緩存是提升頁面性能同時減少服務(wù)器壓力的利器。 引子 互聯(lián)網(wǎng)有一項著名的8秒原則。用戶在訪問Web網(wǎng)頁時,如果時間超過8秒就會感到不耐煩,如果加載需要太長時間,他們就會放棄訪問。大部分用戶希望網(wǎng)頁能在2秒之內(nèi)就完成加載...
閱讀 2325·2021-11-23 10:09
閱讀 2894·2021-10-12 10:11
閱讀 2601·2021-09-29 09:35
閱讀 1343·2019-08-30 15:53
閱讀 2269·2019-08-30 11:15
閱讀 2915·2019-08-29 13:01
閱讀 2298·2019-08-28 18:15
閱讀 3369·2019-08-26 12:13