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