摘要:開(kāi)啟之后,瀏覽器在第一次將資源請(qǐng)求之后會(huì)緩存。在響應(yīng)頭中,用于指示代理和使用何種緩存策略。在該時(shí)間內(nèi)則使用緩存。題外話在使用對(duì)瀏覽器緩存進(jìn)行測(cè)試過(guò)程中發(fā)現(xiàn)。在不設(shè)置的情況下,瀏覽器會(huì)根據(jù)自身的情況去取舍相關(guān)的緩存,可以從這查看。
為了提高站點(diǎn)的訪問(wèn)速度,使用緩存來(lái)優(yōu)化。緩存主要分為 強(qiáng)緩存和協(xié)商緩存。
協(xié)商緩存主要分為last-modified、etag。下面我主要通過(guò)代碼修改來(lái)表現(xiàn)各個(gè)緩存之間的區(qū)別。先討論協(xié)商緩存。last-modified表示文件的修改日期,如果文件做了修改那就應(yīng)該重新獲取文件。last-modified是文件修改后根據(jù)服務(wù)器的時(shí)間生成。
如果我們修改了文件則會(huì)重新獲取,status就為200
再次刷新就會(huì)返回304表示緩存已經(jīng)是最新不需要再更新。
請(qǐng)求中會(huì)詢問(wèn)相關(guān)文件修改時(shí)間(If-Modified-Since)
請(qǐng)求
響應(yīng)
ETag:是一個(gè)可以與Web資源關(guān)聯(lián)的記號(hào)(token)
如果文件被替換,就會(huì)生成唯一的etag。
替換前的文件
替換后的文件
PS: 如果是使用了多臺(tái)服務(wù)器做負(fù)載均衡的話,會(huì)出現(xiàn)etag不一致問(wèn)題。Apache 的默認(rèn)ETag的值總是由文件的索引節(jié)點(diǎn)(Inode)、大小(Size)、最后修改時(shí)間(MTime)決定,我們只需要去掉Inode即可
強(qiáng)緩存相比協(xié)商緩存更為徹底,在強(qiáng)緩存下瀏覽器不會(huì)對(duì)服務(wù)器發(fā)起請(qǐng)求。
強(qiáng)緩存:主要分為expires和cache-control
Expires: 表示存在時(shí)間,允許客戶端在這個(gè)時(shí)間之前不去檢查(發(fā)請(qǐng)求),等同max-age的 效果。但是如果同時(shí)存在,則被Cache-Control的max-age覆蓋。 格式: Expires :時(shí)間,后面跟一個(gè)時(shí)間或者日期,超過(guò)這個(gè)時(shí)間后緩存失效。也就是瀏覽器發(fā)出請(qǐng)求之前,會(huì)檢查這個(gè)時(shí)間是否失效,若失效,則瀏覽器會(huì)重新發(fā)出請(qǐng)求。
開(kāi)啟apache expires_mod之后,瀏覽器在第一次將資源請(qǐng)求之后會(huì)緩存。
Cache-Control
Cache-Control 在 HTTP 響應(yīng)頭中,用于指示代理和 UA 使用何種緩存策略。比如:
no-cache 為本次響應(yīng)不可直接用于后續(xù)請(qǐng)求(在沒(méi)有向服務(wù)器進(jìn)行校驗(yàn)的情況下)
no-store 為禁止緩存(不得存儲(chǔ)到非易失性介質(zhì),如果有的話盡量移除,用于敏感信息)
public為大家都可以緩存。
private為僅 UA 可緩存
cache-control中設(shè)置max-age 為最長(zhǎng)的緩存時(shí)間。在該時(shí)間內(nèi)則使用緩存。
設(shè)置為no-cache之后則不會(huì)再進(jìn)行緩存。
在使用apache對(duì)瀏覽器緩存進(jìn)行測(cè)試過(guò)程中發(fā)現(xiàn)。在不設(shè)置 cache-control的情況下,瀏覽器會(huì)根據(jù)自身的情況去取舍相關(guān)的緩存,可以從這查看。如果大家在服務(wù)器配置過(guò)程中發(fā)現(xiàn),自己沒(méi)有配置任何的緩存信息但是瀏覽器卻緩存了資源就不用驚訝。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/62092.html
摘要:緩存緩存主要是通過(guò)請(qǐng)求和響應(yīng)報(bào)文頭中的對(duì)應(yīng)信息,來(lái)控制緩存的策略。就會(huì)返回一個(gè)的狀態(tài)碼,表示可以繼續(xù)使用客戶端本地緩存的數(shù)據(jù),并刷新超時(shí)時(shí)間。與之相對(duì)的,則表示當(dāng)前響應(yīng)是針對(duì)單個(gè)用戶的,并非通用數(shù)據(jù),因此不建議任何中間緩存對(duì)其進(jìn)行緩存。 showImg(https://segmentfault.com/img/remote/1460000015383634?w=1080&h=720);...
摘要:已經(jīng)得到越來(lái)越多的瀏覽器的支持,包括蘋(píng)果騰訊的內(nèi)核。蘋(píng)果從開(kāi)始,已經(jīng)開(kāi)始支持了。針對(duì)各種應(yīng)用場(chǎng)景的多種緩存策略。在無(wú)網(wǎng)絡(luò)環(huán)境的情況,也可以做到離線緩存的效果,極大地提升頁(yè)面的用戶體驗(yàn)。 什么是workbox,workbox有什么用途,為什么要使用它?在介紹workbox之前,我們來(lái)先大致了解一下service worker,有助于我們后面更好地去理解workbox。 一. servic...
摘要:在這里所講的緩存是計(jì)算機(jī)設(shè)備的緩存。三緩存的特征命中率命中率返回正確結(jié)果數(shù)請(qǐng)求緩存次數(shù),命中率問(wèn)題是緩存中的一個(gè)非常重要的問(wèn)題,它是衡量緩存有效性的重要指標(biāo)。 前言: 對(duì)于工作經(jīng)驗(yàn)僅僅只有一年的我來(lái)說(shuō), 寫(xiě)這篇文章有些吃力,并且感覺(jué)有些理解還不夠透徹,但是還是鉚足了勁想啃啃緩存這塊硬骨頭。緩存是性能優(yōu)化的一個(gè)必經(jīng)之路,可以說(shuō)用好了緩存,性能優(yōu)化的路就走完一半了。 一、系統(tǒng)緩存 在知乎...
摘要:與瀏覽器緩存一瀏覽器對(duì)緩存的處理選項(xiàng)控制請(qǐng)求服務(wù)器策略是忽略資源的緩存策略的情況下額外強(qiáng)制請(qǐng)求服務(wù)器的意思。而節(jié)點(diǎn)只針對(duì)中的配置會(huì)覆蓋的配置。Nginx與瀏覽器緩存 一、瀏覽器對(duì)緩存的處理:Internet選項(xiàng) ★ 控制請(qǐng)求服務(wù)器策略:是忽略資源的緩存策略的情況下額外強(qiáng)制請(qǐng)求服務(wù)器的意思。 ?★?檢查存儲(chǔ)的頁(yè)面較新版本 ? ? ? ? 1.每次訪問(wèn)網(wǎng)頁(yè)時(shí)? ? ? ? ? ? ?...
摘要:開(kāi)啟之后,瀏覽器在第一次將資源請(qǐng)求之后會(huì)緩存。在響應(yīng)頭中,用于指示代理和使用何種緩存策略。在該時(shí)間內(nèi)則使用緩存。題外話在使用對(duì)瀏覽器緩存進(jìn)行測(cè)試過(guò)程中發(fā)現(xiàn)。在不設(shè)置的情況下,瀏覽器會(huì)根據(jù)自身的情況去取舍相關(guān)的緩存,可以從這查看。 為了提高站點(diǎn)的訪問(wèn)速度,使用緩存來(lái)優(yōu)化。緩存主要分為 強(qiáng)緩存和協(xié)商緩存。 協(xié)商緩存 主要分為last-modified、etag。下面我主要通過(guò)代碼修改來(lái)表現(xiàn)...
閱讀 2051·2023-04-25 15:11
閱讀 3516·2021-09-23 11:57
閱讀 1387·2021-07-26 23:38
閱讀 1327·2019-08-30 15:54
閱讀 645·2019-08-30 15:53
閱讀 3256·2019-08-26 13:36
閱讀 998·2019-08-26 12:01
閱讀 2873·2019-08-23 16:21