日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
如何修復(fù)網(wǎng)站測速中的“指定緩存驗(yàn)證器”警告問題

您是否在WordPress網(wǎng)站上的Pingdom、GTmetrix或Google PageSpeed Insights中看到“指定緩存驗(yàn)證器(Specify a Cache Validator)”警告?這是因?yàn)槿鄙貶TTP緩存標(biāo)頭,這些標(biāo)頭應(yīng)該包含在每個源服務(wù)器響應(yīng)中,因?yàn)樗鼈兌?strong>驗(yàn)證并設(shè)置了緩存的長度。如果沒有找到標(biāo)頭,它每次都會為資源生成一個新的請求,這會增加服務(wù)器的負(fù)載。 使用緩存標(biāo)頭可確保 不必從服務(wù)器加載后續(xù)請求,從而為用戶節(jié)省帶寬并提高性能。

指定緩存驗(yàn)證器警告

Pingdom的警告指出:

以下資源缺少緩存驗(yàn)證器。未指定緩存驗(yàn)證器的資源無法有效刷新。指定Last-Modified或ETag標(biāo)頭以啟用以下資源的緩存驗(yàn)證。

按照有關(guān)如何解決“指定緩存驗(yàn)證”的警告下面的步驟。

修復(fù)“指定緩存驗(yàn)證器”警告

關(guān)于此警告需要注意的第一件事是,您只能針對服務(wù)器上的請求修復(fù)此問題。如果您有3rd方請求,您會看到此內(nèi)容,則您無能為力,因?yàn)槟鸁o法控制他們的Web服務(wù)器。盡管隨時與他們分享這篇文章。請記住,使用Pingdom,您可能需要多次運(yùn)行測試??赡苁堑谝淮纬霈F(xiàn)警告,第二次消失。當(dāng)您第一次運(yùn)行該工具時,它會從服務(wù)器啟動資產(chǎn)的緩存。

有四種不同類型的標(biāo)題可以以不同的方式用于修復(fù)此警告。這可能會讓人有點(diǎn)困惑,但我們將嘗試盡可能簡單地解釋它。

驗(yàn)證緩存的標(biāo)頭

前兩個標(biāo)頭是last-modifiedETag。這些標(biāo)頭可幫助瀏覽器確定自上次請求以來該文件是否已更改?;蛘吒_切地說,他們驗(yàn)證緩存。

1. 上次修改

最后修改標(biāo)頭通常自動從服務(wù)器發(fā)送。這是一個您通常不需要手動添加的標(biāo)題。發(fā)送它是為了查看自上次請求以來瀏覽器緩存中的文件是否已被修改。您可以在Pingdom中查看header請求或使用Chrome DevTools查看最后修改的header的值。

最后修改的標(biāo)題

2. ETag

ETag的頭也很類似Last-Modified頭。它還用于驗(yàn)證文件的緩存。如果您運(yùn)行的是Apache 2.4或更高版本,則ETag標(biāo)頭已使用FileETag指令自動添加。就NGINX而言,自2016年以來,ETag標(biāo)頭默認(rèn)啟用。

ETag標(biāo)頭

您可以使用以下代碼在NGINX中手動啟用ETag標(biāo)頭。

etag on

決定緩存長度的標(biāo)頭

接下來的兩個標(biāo)頭是Cache-ControlExpires。這些標(biāo)頭有助于確定文件在從服務(wù)器獲取新副本之前應(yīng)在緩存中保留多長時間。請記住,要修復(fù)您在Pingdom或GTmetrix中看到的警告,您需要確保您有一個既可以驗(yàn)證緩存又可以確定緩存長度的標(biāo)頭。

3. 緩存控制

Cache-Control是由不同指令組成的標(biāo)頭,允許您定義緩存的長度。一些最常見的指令包括:

  • max-age:定義文件應(yīng)該被緩存的時間。
  • public: 允許任何緩存公開存儲響應(yīng)。
  • private:只能通過瀏覽器訪問文件緩存。

緩存控制頭

在上面的示例中,我們可以看到資產(chǎn)正在使用max-age指令。604800秒等于7天的緩存。要在Apache中進(jìn)行配置,只需將以下代碼添加到您的 .htaccess 文件中。


Header set Cache-Control "max-age=604800, public"

要在NGINX中配置它,只需將以下代碼添加到您的配置文件中。所有NGINX配置文件都位于該/etc/nginx/目錄中。主要配置文件是/etc/nginx/nginx.conf.

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
 add_header Cache-Control "public";
}

要了解有關(guān)不同指令的更多信息,請查看這篇關(guān)于Cache-Control的深入文章  。

4. 過期

最后你有expires標(biāo)頭。根據(jù)這篇Google Developers文章,HTTP Caching : Cache-Control標(biāo)頭被定義為HTTP/1.1規(guī)范的一部分,并取代了以前用于定義響應(yīng)緩存策略的標(biāo)頭(在本例中為Expires標(biāo)頭)。所有現(xiàn)代瀏覽器都支持Cache-Control,因此這就是您所需要的。但是,如果您同時擁有兩者,則不會有任何傷害,但請記住,只會使用一個。Expires標(biāo)頭使用實(shí)際日期,而Cache-Control標(biāo)頭允許您指定到期前的時間量。

過期標(biāo)題

要在Apache中添加Expires標(biāo)頭,只需將以下代碼添加到您的 .htaccess文件中。

## EXPIRES HEADER CACHING ##
 
 ExpiresActive On
 ExpiresByType image/jpg "access 1 year"
 ExpiresByType image/jpeg "access 1 year"
 ExpiresByType image/gif "access 1 year"
 ExpiresByType image/png "access 1 year"
 ExpiresByType text/css "access 1 month"
 ExpiresByType application/pdf "access 1 month"
 ExpiresByType application/javascript "access 1 month"
 ExpiresByType application/x-javascript "access 1 month"
 ExpiresByType application/x-shockwave-flash "access 1 month"
 ExpiresByType image/x-icon "access 1 year"
 ExpiresDefault "access 7 days"
 
 ## EXPIRES HEADER CACHING ##

確保在諸如mod_rewrite、GZIP等內(nèi)容下方添加Expires標(biāo)頭塊。在文件底部是最安全的。

在.htaccess中添加過期標(biāo)頭

要在NGINX中添加Expires標(biāo)頭,只需將以下代碼添加到您的配置文件中。

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires 7d;
}

在NGINX上的很多情況下,Cache-Control標(biāo)頭和Expires標(biāo)頭只是一起使用,即使這在技術(shù)上不是必需的:

location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
    expires 7d;
    add_header Cache-Control "public";
}

大多數(shù)3rd方CDN提供商,例如KeyCDN和Cloudflare,也會在交付您的資產(chǎn)時自動添加這些標(biāo)頭。如果您看到警告,則可能是您的主機(jī)運(yùn)行的軟件過時或服務(wù)器配置錯誤。我們通常在共享主機(jī)上看到這種情況?;蛘撸赡苷谠O(shè)置自己的服務(wù)器,在這種情況下,可能尚未添加上述某些標(biāo)頭。

如果一切順利,并且您沒有任何未正確使用標(biāo)頭的3rd方請求,您應(yīng)該會使用Pingdom等網(wǎng)站速度測試工具(如下所示)看到您的分?jǐn)?shù)有所提高。

修復(fù)了指定緩存驗(yàn)證器警告


分享文章:如何修復(fù)網(wǎng)站測速中的“指定緩存驗(yàn)證器”警告問題
標(biāo)題URL:http://m.5511xx.com/article/dheodso.html