日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

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

指定緩存驗證器警告

Pingdom的警告指出:

以下資源缺少緩存驗證器。未指定緩存驗證器的資源無法有效刷新。指定Last-Modified或ETag標頭以啟用以下資源的緩存驗證。

按照有關如何解決“指定緩存驗證”的警告下面的步驟。

修復“指定緩存驗證器”警告

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

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

驗證緩存的標頭

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

1. 上次修改

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

最后修改的標題

2. ETag

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

ETag標頭

您可以使用以下代碼在NGINX中手動啟用ETag標頭。

etag on

決定緩存長度的標頭

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

3. 緩存控制

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

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

緩存控制頭

在上面的示例中,我們可以看到資產(chǎn)正在使用max-age指令。604800秒等于7天的緩存。要在Apache中進行配置,只需將以下代碼添加到您的 .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";
}

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

4. 過期

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

過期標題

要在Apache中添加Expires標頭,只需將以下代碼添加到您的 .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標頭塊。在文件底部是最安全的。

在.htaccess中添加過期標頭

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

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

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

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

大多數(shù)3rd方CDN提供商,例如KeyCDN和Cloudflare,也會在交付您的資產(chǎn)時自動添加這些標頭。如果您看到警告,則可能是您的主機運行的軟件過時或服務器配置錯誤。我們通常在共享主機上看到這種情況。或者,您可能正在設置自己的服務器,在這種情況下,可能尚未添加上述某些標頭。

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

修復了指定緩存驗證器警告


網(wǎng)站題目:如何修復網(wǎng)站測速中的“指定緩存驗證器”警告問題
本文鏈接:http://www.dlmjj.cn/article/dheodso.html